Method and apparatus for constant envelope modulation

ABSTRACT

Certain aspects of the present disclosure relate to a method for modulating single carrier signals using constant envelope 2-CPM modulation and quasi-constant envelope filtered continuously rotated pseudo-PSK modulation in a wireless communication system.

BACKGROUND

1. Field

Certain aspects of the present disclosure generally relate to constantenvelope spread-spectrum coding and, more particularly, to a method formodulating a continuous phase modulated (CPM) signal.

2. Background

Spread-spectrum coding is a technique by which signals generated in aparticular bandwidth can be spread in a frequency domain, resulting in asignal with a wider bandwidth. The spread signal has a lower powerdensity, but the same total power as an un-spread signal. The expandedtransmission bandwidth minimizes interference to others transmissionsbecause of its low power density. At the receiver, the spread signal canbe decoded, and the decoding operation provides resistance tointerference and multipath fading.

Spread-spectrum coding is used in standardized systems, e.g. GSM,General Packet Radio Service (GPRS), Enhanced Digital GSM Evolution(EDGE), Code Division Multiple Access (CDMA), Wideband Code DivisionMultiple Access (WCDMA or W-CDMA), Orthogonal Frequency DivisionMultiplexing (OFDM), Orthogonal Frequency Division Multiple Access(OFDMA), Time Division Multiple Access (TDMA), Digital European CordlessTelecommunication (DECT), Infrared (IR), Wireless Fidelity (Wi-Fi),Bluetooth, Zigbee, Global Positioning System (GPS), Millimeter Wave(mmWave), Ultra Wideband (UWB), other standardized as well asnon-standardized systems, wireless and wired communication systems.

In order to achieve good spreading characteristics in a system usingspread spectrum, it is desirable to employ spreading codes which possessa near perfect periodic or aperiodic autocorrelation function, i.e. lowsidelobes level as compared to the main peak, and an efficientcorrelator-matched filter to ease the processing at the receiver side.Spreading codes with high peak and low sidelobes level yields betteracquisition and synchronization properties for communications, radar,and positioning applications.

In spread spectrum systems using multiple spreading codes, it is notsufficient to employ codes with good autocorrelation properties sincesuch systems may suffer from multiple-access interference (MAI) andpossibly inter-symbol interference (ISI). In order to achieve goodspreading characteristics in a multi code DS-CDMA system, it isnecessary to employ sequences having good autocorrelation properties aswell as low cross-correlations. The cross-correlation between any twocodes should be low to reduce MAI and ISI.

Complementary codes, first introduced by Golay in M. Golay,“Complementary Series,” IRE Transaction on Information Theory, Vol. 7,Issue 2, April 1961, are sets of complementary pairs of equally long,finite sequences of two kinds of elements which have the property thatthe number of pairs of like elements with any one given separation inone code is equal to the number of unlike elements with the same givenseparation in the other code. The complementary codes first discussed byGolay were pairs of binary complementary codes with elements +1 and −1where the sum of their respective aperiodic autocorrelation sequence iszero everywhere, except for the center tap.

Polyphase complementary codes described in R. Sivaswamy, “MultiphaseComplementary Codes,” IEEE Transaction on Information Theory, Vol. 24,Issue 5, September 1978, are codes where each element is a complexnumber with unit magnitude.

An efficient Golay correlator-matched filter was introduced by S.Budisin, “Efficient Pulse Compressor for Golay Complementary Sequences,”Electronic Letters, Vol. 27, Issue 3, January 1991, along with arecursive algorithm to generate these sequences as described in S.Budisin “New Complementary Pairs of Sequences,” Electronic Letters, Vol.26, Issue 13, June 1990, and in S. Budisin “New Multilevel ComplementaryPairs of Sequences,” Electronic Letters, Vol. 26, Issue 22, October1990. The Golay complementary sequences described by Budisin are themost practical, they have lengths that are power of two, binary orcomplex, 2 levels or multi-levels, have good periodic and aperiodicautocorrelation functions and most importantly possess a highlyefficient correlator-matched filter receiver.

However, Golay sequences are not without drawbacks. First, Golaysequences don't exist for every length, for example binary complementaryGolay sequences are known for lengths 2^(M) as well as for some evenlengths that can be expressed as sum of two squares. Second, anefficient Golay correlator-matched filter exists only for Golaysequences generated by Budisin's recursive algorithm and that are oflength that is a power of two (i.e. 2^(M)). Third, the Golay sequencesgenerated using Budisin's recursive algorithm might not possess thedesired correlation properties. Furthermore, good spreading sequencessuch as m-sequences, Gold sequences, Barker sequences and other knownsequences do not possess a highly efficient correlatormatched/mismatched filter.

WBAN (Wireless Body Area Networks) are envisioned to be crystal-less orwill use cheap crystal oscillators. In both cases the system with havehigh ppm (parts per million) precision on the output frequency. For WBANspread spectrum systems where there is a substantial frequency offsetbetween the transmitter and the receiver, it might be advantageous toprocess the received signal differentially first. Golay sequences,m-sequences and other codes do not possess good correlation propertieswhen detected differentially.

Finally, for low power applications such as wearable devices andwireless implants, there is a need for very low power radio that allowsoperation for long time before changing or charging the battery.

Therefore, there is a need in the art for a method of spread spectrumcoding applied at the transmitter and an efficient method forde-spreading at the receiver that allows for large frequency driftbetween two communicating stations and for a method to reduce the powerconsumption at the receiver.

Furthermore, there is a need in the art for a practical constantenvelope or quasi-constant envelope modulations that enable long batterylife while still allowing practical encoding at the transmitter andpractical decoding at the receiver.

A decomposition of binary CPM (Continuous Phase Modulation) as a sum ofa finite number of time limited amplitude modulated pulse (AMP) wasintroduced by P. Laurent, “Exact and Approximate Construction of DigitalPhase Modulations by Superposition of Amplitude Modulated Pulses (AMP),”IEEE Transaction on Communications, Vol. Com-34, NO. 2, February 1982.This was later generalized to non-binary CPM by U. Mengali & al.,“Decomposition of M-ary CPM Signals into PAM waveforms,” Vol. 41, No. 5,September 1995. In both cases, the number of pulses remained large forpractical CPM modulations. Therefore, there is a need in the art for asingle pulse representation of CPM signals which allow us to process CPMas a linear modulation in a similar fashion to BPSK, QPSK and QAMmodulations.

SUMMARY

Certain aspects provide a method for wireless and wired communications.The method generally includes spreading at least one of the fields of adata stream with one or plurality of spreading sequences wherein atleast one of the spreading sequences is based on one of differentialm-sequence and differential generalized Golay sequences, andtransmitting the spread data stream.

Certain aspects provide a method for wireless and wired communications.The method generally includes receiving a spread data stream wherein atleast one of the fields is spread with one or plurality of spreadingsequences, and despreading the spread fields of the data stream using adifferential detector followed by one of generalized efficient Golaycorrelator and efficient Walsh correlator.

Certain aspects provide a method for wireless and wired communications.The method generally includes spreading a preamble sequence with a Golaycode or a generalized Golay code generated using an efficient Golaygenerator, pre-pending the preamble to a header and a payload to createa packet, and modulating the packet using one off binary CPM (ContinuousPhase Modulation) such as GMSK/GFSK (Gaussian Minimum shiftKeying/Gaussian Frequency Shift Keying), filtered and rotateddifferential pseudo-BPSK, 4-PAM CPM, and filtered and rotatedgeneralized differential pseudo-QPSK.

Certain aspects provide a method for wireless and wired communications.The method generally includes receiving a data stream comprising apreamble based on Golay or generalized-Golay spreading code, de-rotatingthe signal, applying a differentially detection operation, correlationusing an efficient Golay or generalized Golay correlator, accumulatingthe outputs of the Golay correlator in a shift register and detectingthe presence or absence of the packet by comparing the magnitude of thevalues in the shift register to a threshold and establishing timing andestimating the frequency offset and using the remainder of the preambleto estimate the CIR (channel impulse response) and end of preamble.

Certain aspects provide a method for wireless and wired communications.The method generally includes receiving a 2-CPM modulated data stream,de-rotating the data stream, and decoding the data stream by modelingthe received signal as a linear convolution between the pseudo-BPSKsymbols (chips) and the multipath channel.

Certain aspects provide a method for wireless and wired communications.The method generally includes pre-pending training sequence to thepayload portion of the data stream, modulating the data stream includingthe training sequence using 4-CPM or filtered rotated generalizeddifferential pseudo-QPSK and transmitting the packet.

Certain aspects provide a method for wireless and wired communications.The method generally includes receiving a 4-CPM modulated data stream,de-rotating the data stream, obtaining a CIR estimate using correlationwith the pseudo-QPSK training sequence followed by correcting the CIR,and using the CIR to decode the payload by modeling the payload as alinear convolution between the pseudo-QPSK symbols (chips) and the CIR.

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above-recited features of the presentdisclosure can be understood in detail, a more particular description,briefly summarized above, may be had by reference to aspects, some ofwhich are illustrated in the appended drawings. It is to be noted,however, that the appended drawings illustrate only certain typicalaspects of this disclosure and are therefore not to be consideredlimiting of its scope, for the description may admit to other equallyeffective aspects.

FIG. 1 illustrates an example wireless communication system, inaccordance with certain aspects of the present disclosure.

FIG. 2 illustrates various components that may be utilized in a wirelessdevice in accordance with certain aspects of the present disclosure.

FIG. 3 illustrates an example transceiver that may be used within awireless communication system in accordance with certain aspects of thepresent disclosure.

FIG. 4A illustrates an efficient Golay generator/correlator that may beused to generate a pair of Golay complementary codes or to performmatched filtering operations.

FIG. 4B illustrates an alternative efficient Golay generator/correlatorthat may be used to generate a pair of Golay complementary codes or toperform matched filtering operations.

FIG. 5A illustrates a preferred Golay generator in accordance withcertain aspect of the present disclosure which may be used at atransmitter to generate one or multiple generalized Golay codes that maybe used for spreading one or multiple fields of a data stream to betransmitted.

FIG. 5B illustrates one of the stages of the preferred binary Golaygenerator in accordance with certain aspect of the present disclosure.

FIG. 5C illustrates one of the stages of the preferred non-binary Golaygenerator in accordance with certain aspect of the present disclosure.

FIG. 6A illustrates a generalized Golay code in accordance to one aspectof the present disclosure which may be used at a transmitter to generateone or multiple generalized Golay codes that may be used for spreadingone or multiple fields of a data stream to be transmitted.

FIG. 6B illustrates a preferred generalized Golay generator inaccordance to one aspect of the present disclosure which may be used ata transmitter to generate one or multiple generalized Golay codes thatmay be used for spreading one or multiple fields of a data stream to betransmitted.

FIG. 7 illustrates a WBAN (Wireless Body Area Network) frame formatusing Golay and Generalized Golay codes and 2-CPM/4-CPM modulation inaccordance to one aspect of the present disclosure.

FIG. 8A illustrates an example generalized efficient Golay correlatorthat may be used within a wireless communication system in accordancewith certain aspects of the present disclosure.

FIG. 8B illustrates example implementation generalized efficient Golaycorrelator that may be used within a wireless communication system inaccordance with certain aspects of the present disclosure.

FIG. 9 illustrates an example generalized efficient parallel Golaycorrelator that may be used within a wireless communication system inaccordance with certain aspects of the present disclosure.

FIG. 10A illustrates a 2-CPM modulator with an arbitrary modulationindex used to modulate the data stream to be transmitted.

FIG. 10B illustrates an alternative implementation of a 2-CPM modulatorin accordance with certain aspects of the present disclosure.

FIG. 10C illustrates a differential encoder used as a part of thealternative 2-CPM modulator of FIG. 10B.

FIG. 10D illustrates a continuous chip rotator used as a part of thealternative 2-CPM modulator of FIG. 10B.

FIG. 11A illustrates a 2-CPM modulator with modulation index ½ used tomodulate the data stream to be transmitted.

FIG. 11B illustrates an alternative implementation of a 2-CPM modulatorwith modulation index ½ in accordance with certain aspects of thepresent disclosure.

FIG. 11C illustrates a differential encoder used as a part of thealternative 2-CPM modulator of FIG. 11B.

FIG. 11D illustrates a continuous chip rotator used as a part of thealternative 2-CPM modulator of FIG. 11B.

FIG. 12A illustrates a 4-CPM modulator with an arbitrary modulationindex used to modulate the data stream to be transmitted.

FIG. 12B illustrates an alternative implementation of a 4-CPM modulatorin accordance with certain aspects of the present disclosure.

FIG. 12C illustrates a differential encoder used as a part of thealternative 4-CPM modulator of FIG. 12B.

FIG. 12D illustrates a continuous chip rotator used as a part of thealternative 4-CPM modulator of FIG. 12B.

FIG. 13A illustrates a channel impulse response estimator in accordanceto one aspect of the disclosure.

FIG. 13B illustrates an example implementation of the correlator used inFIG. 13A.

FIG. 14A illustrates a 2-CPM spread preamble according to one aspect ofthe disclosure.

FIG. 14B illustrates an alternative implementation of a 2-CPM spreadpreamble according to one aspect of the disclosure.

FIG. 15A illustrates an efficient m-sequence (maximal length sequence)generator.

FIG. 15B illustrates an example m-sequence generator for an m-sequenceof length 15.

FIG. 15C illustrates an example efficient differential m-sequencegenerator for an m-sequence of length 15.

FIG. 15D illustrates an efficient m-sequence correlator according to oneaspect of the disclosure.

FIG. 16A illustrates an efficient preamble processing at the receiver inaccordance to ones aspect of the disclosure.

FIG. 16B illustrates a differential detector to be used as part of thepreamble processing unit of FIG. 16A.

FIG. 16C illustrates an example accumulator implementation using IIR(Infinite Impulse Response) that may be used in the preamble processingunit of FIG. 16A.

FIG. 17 illustrates an example receiver that may be used to detect a2-CPM or 4-CPM modulated data stream in accordance to one aspect of thedisclosure.

FIG. 18A illustrates example operations for spreading and 2-CPMmodulating in accordance with certain aspects of the present disclosure.

FIG. 18B illustrates example components capable of performing theoperations illustrated in FIG. 18A.

FIG. 19A illustrates an example operations for processing of spreadsignals at the receiver in accordance with certain aspects of thepresent disclosure.

FIG. 19B illustrates example components capable of performing theoperations illustrated in FIG. 19A.

FIG. 20A illustrates example operations for decoding a 2-CPM data streamin accordance with certain aspects of the present disclosure.

FIG. 20B illustrates example components capable of performing theoperations illustrated in FIG. 20A.

FIG. 20C illustrates an example operations for processing of 4-CPM datastream at the receiver using generalized pseudo QPSK in accordance withcertain aspects of the present disclosure.

FIG. 20D illustrates example components capable of performing theoperations illustrated in FIG. 20C.

DETAILED DESCRIPTION

Various aspects of the disclosure are described more fully hereinafterwith reference to the accompanying drawings. This disclosure may,however, be embodied in many different forms and should not be construedas limited to any specific structure or function presented throughoutthis disclosure. Rather, these aspects are provided so that thisdisclosure will be thorough and complete, and will fully convey thescope of the disclosure to those skilled in the art. Based on theteachings herein one skilled in the art should appreciate that the scopeof the disclosure is intended to cover any aspect of the disclosuredisclosed herein, whether implemented independently of or combined withany other aspect of the disclosure. For example, an apparatus may beimplemented or a method may be practiced using any number of the aspectsset forth herein. In addition, the scope of the disclosure is intendedto cover such an apparatus or method which is practiced using otherstructure, functionality, or structure and functionality in addition toor other than the various aspects of the disclosure set forth herein. Itshould be understood that any aspect of the disclosure disclosed hereinmay be embodied by one or more elements of a claim.

The word “exemplary” is used herein to mean “serving as an example,instance, or illustration.” Any aspect described herein as “exemplary”is not necessarily to be construed as preferred or advantageous overother aspects.

Although particular aspects are described herein, many variations andpermutations of these aspects fall within the scope and spirit of thedisclosure. Although some benefits and advantages of the preferredaspects are mentioned, the scope of the disclosure is not intended to belimited to particular benefits, uses, or objectives. Rather, aspects ofthe disclosure are intended to be broadly applicable to differentwireless technologies, system configurations, networks, and transmissionprotocols, some of which are illustrated by way of example in thefigures and in the following description of the preferred aspects. Thedetailed description and drawings are merely illustrative of thedisclosure rather than limiting, the scope of the disclosure beingdefined by the appended claims and equivalents thereof.

An Example Wireless Communication System

The techniques described herein may be used for various wireless andwired communication systems, including communication systems that arebased on a single carrier transmission. Aspects disclosed herein may beadvantageous to systems employing Code Division Multiple Access (CDMA)signals. However, the present disclosure is not intended to be limitedto such systems, as other coded signals may benefit from similaradvantages.

FIG. 1 illustrates an example of a wireless communication system 100 inwhich aspects of the present disclosure may be employed. The wirelesscommunication system 100 may be a broadband wireless communicationsystem. The wireless communication system 100 may provide communicationfor a number of Basic Service Sets (BSSs) 102, each of which may beserviced by a Service Access Point (SAP) 104. A SAP 104 may be a fixedstation or a mobile station that communicates with Stations (STAs) 106.A BSS 102 may alternatively be referred to as cell, piconet or someother terminology. A SAP 104 may alternatively be referred to as basestation, a piconet controller, a Node B or some other terminology.

FIG. 1 depicts various stations 106 dispersed throughout the system 100.The stations 106 may be fixed (i.e., stationary) or mobile. The stations106 may alternatively be referred to as remote stations, accessterminals, terminals, subscriber units, mobile stations, devices, userequipment, etc. The stations 106 may be wireless devices, such ascellular phones, personal digital assistants (PDAs), handheld devices,wireless modems, laptop computers, personal computers, etc.

A variety of algorithms and methods may be used for transmissions in thewireless communication system 100 between the SAPs 104 and the STAs 106and betweens STAs 106 themselves. For example, signals may be sent andreceived between the SAPs 104 and the STAs 106 in accordance with CDMAtechnique and signals may be sent and received between STAs 106 inaccording with OFDM technique. If this is the case, the wirelesscommunication system 100 may be referred to as a hybrid CDMA/OFDMsystem.

A communication link that facilitates transmission from a SAP 104 to aSTA 106 may be referred to as a downlink (DL) 108, and a communicationlink that facilitates transmission from a STA 106 to a SAP 104 may bereferred to as an uplink (UL) 110. Alternatively, a downlink 108 may bereferred to as a forward link or a forward channel, and an uplink 110may be referred to as a reverse link or a reverse channel. When two STAscommunicate directly with each other, a first STA will act as the masterof the link, and the link from the first STA to the second STA will bereferred to as downlink 112, and the link from the second STA to thefirst STA will be referred to as uplink 114.

A BSS 102 may be divided into multiple sectors 112. A sector 116 is aphysical coverage area within a BSS 102. SAPs 104 within a wirelesscommunication system 100 may utilize antennas that concentrate the flowof power within a particular sector 116 of the BSS 102. Such antennasmay be referred to as directional antennas.

FIG. 2 illustrates various components that may be utilized in a wirelessdevice 210 that may be employed within the wireless communication system100. The wireless device 210 is an example of a device that may beconfigured to implement the various methods described herein. Thewireless device 202 may be a SAP 104 or a STA 106.

The wireless device 202 may include a processor 204 which controlsoperation of the wireless device 202. The processor 204 may also bereferred to as a central processing unit (CPU). Memory 206, which mayinclude both read-only memory (ROM) and random access memory (RAM),provides instructions and data to the processor 204. A portion of thememory 206 may also include non-volatile random access memory (NVRAM).The processor 204 typically performs logical and arithmetic operationsbased on program instructions stored within the memory 206. Theinstructions in the memory 206 may be executable to implement themethods described herein.

The wireless device 202 may also include a housing 208 that may includea transmitter 210 and a receiver 212 to allow transmission and receptionof data between the wireless device 202 and a remote location. Thetransmitter 210 and receiver 212 may be combined into a transceiver 214.An antenna 216 may be attached to the housing 208 and electricallycoupled to the transceiver 214. The wireless device 202 may include oneor more wired peripherals 224 such as USB, HDMI, or PCIE. The wirelessdevice 202 may also include (not shown) multiple transmitters, multiplereceivers, multiple transceivers, and/or multiple antennas.

The wireless device 202 may also include a signal detector 218 that maybe used in an effort to detect and quantify the level of signalsreceived by the transceiver 214. The signal detector 218 may detect suchsignals as total energy, energy per subcarrier per symbol, powerspectral density and other signals. The wireless device 202 may alsoinclude a digital signal processor (DSP) 220 for use in processingsignals.

The various components of the wireless device 202 may be coupledtogether by a bus system 222, which may include a power bus, a controlsignal bus, and a status signal bus in addition to a data bus.

FIG. 3 illustrates an example of a transmitter 302 that may be usedwithin a wireless communication system 100 that utilizes single carriertransmission or some other transmission technique. Portions of thetransmitter 302 may be implemented in the transmitter 210 of a wirelessdevice 202. The transmitter 302 may be implemented in a base station 104for transmitting data 330 to a user terminal 106 on a downlink 108. Thetransmitter 302 may also be implemented in a station 106 fortransmitting data 330 to a service access point 104 on an uplink 110.

Data 306 to be transmitted are shown being provided as input to aforward error correction (FEC) encoder 308. The FEC encoder encodes thedata 306 by adding redundant bits. The FEC encoder may encode the data306 using convolutional encoder, Reed Solomon encoder, concatenatedcodes, Turbo encoder, low density parity check (LDPC) encoder, etc. TheFEC encoder 308 outputs an encoded data stream 310.

The encoded data stream 310 may be pre-pended by a preamble 312generated from one or multiple spreading sequences from the spreadingcodes generator 314, and the output stream 316 is input to modulator318.

The modulator 318 may map the data stream 316 onto differentconstellation points. The mapping may be done using some modulationconstellation, such as 2-GMSK (i.e. binary Gaussian Minimum ShiftKeying), 4-GMSK (i.e. four levels Gaussian Minimum Shift Keying), binaryphase-shift keying (BPSK), quadrature phase shift keying (QPSK), 8phase-shift keying (8PSK), quadrature amplitude modulation (QAM),continuous phase modulation (CPM), etc.

The output stream 320 may then be converted to analog and up-convertedto a desired transmit frequency band by a radio frequency (RF) front end328 which may include a mixed signal and an analog section. An antenna330 may then transmit the resulting signal 332.

FIG. 3 also illustrates an example of a receiver 304 that may be usedwithin a wireless device 202 that utilizes a single carrier scheme.Portions of the receiver 304 may be implemented in the receiver 212 of awireless device 202. The receiver 304 may be implemented in a station106 for receiving data 306 from a service access point 104 on a downlink108. The receiver 304 may also be implemented in a base station 104 forreceiving data 306 from a user terminal 106 on an uplink 110.

The transmitted signal 332 is shown traveling over a wireless channel334. When a signal 332′ is received by an antenna 330′, the receivedsignal 332′ may be down-converted to a baseband signal by an RF frontend 328′ which may include a mixed signal and an analog portion.Preamble detection and synchronization component 322′ may be used toestablish timing, frequency and channel synchronization using one ormultiple correlators that correlate with one or multiple spreading codesgenerated by the spreading code(s) generator 324′.

The output of the RF front end 328′ is input to the frequency and timingcorrection block which corrects for frequency errors between thetransmitter 302 and receiver 304 and may interpolate to the best timingbefore being input to the data detection component 318′ along with thesynchronization information from 322′. The block detection block mayperform de-spreading and equalization.

A demapper 312′ may perform the inverse of the symbol mapping operationthat was performed by the mapper/modulator 318 thereby outputting softor hard decisions 310′. The soft or hard decisions 310′ are input to theFEC decoder which provides an estimate data stream 306′. Ideally, thisdata stream 306′ corresponds to the data 306 that was provided as inputto the transmitter 302.

The wireless systems 100 illustrated in FIG. 1 may be a WBAN (WirelessBody Area Network) operating in the frequency bands, 401-406 MHz,433.5-434. MHz, 608-614 MHz, 868-928 MHz, 902-928 MHz, 1395-1400 MHz,1427-1432 MHz, and 2400-2483.5 MHz, unlicensed bands specified by theFederal Communications Commission (FCC) and other regulatory bodies.

Golay Codes

In one aspect of the disclosure, spreading codes generated by spreadingcode(s) generator 314 in a transmitter 302 are based on Golay codes. Asummary of Golay codes, their properties, generation and reception isprovided next.

A Golay complementary pair of codes of length N=2^(M), denoted here aand b, are specified by a delay vector D=[D₁, D₂, . . . , D_(M)] withelements chosen as any permutation of {1, 2, 4, . . . , 2^(M)} and aseed vector W=[W₁, W₂, . . . , W_(M)]. Binary Golay complementarysequences are generated when the seed vector elements {W_(m)} are +1 or−1. Polyphase Golay complementary sequences are generated when the seedvector elements {W_(m)} are arbitrary complex numbers with unitmagnitude. Golay complementary pairs of length 1 are defined here as thepair of sequences a=[+1] and b=[+1]. Alternative Golay complementarypairs of length 1 can be used such as a=[+1] and b=[−1].

The following MATLAB code can be used to generate a pair of binary orpolyphase Golay complementary codes a and b of length N=2^(M) with M≧1,using Budisin's recursive algorithm. The inputs to the MATLAB functionbeing the delay vector D and seed vector W.

function [a,b] = GolayGeneratorI (D,W); M=length (D); N=2 {circumflexover ( )}M; a = [1 zeros (1,N−1)]; b = a; for m=1:M,   I = mod ([O :N−1]−D(m), N);   an = +W(m) *a + b(I+ (1) );   bn = −W(m) *a + b(I+ (1) );  a = an; b = bn; end; return;

It should be appreciated that the Golay code generation describe abovecan be modified in many ways and still yields a pair of complementaryGolay codes. The order of the adders and subtractors can be inverted,and the seed vector elements can multiply wither code a or b in theconstruction and still yields a pair of complementary Golay codes. Toclarify the above, we provide one (out of many) alternative MATLAB Golaycode generation, labeled “GolayGeneratorII”.

function [a,b] = GolayGeneratorII (D,W); M=length (D); N=2{circumflexover ( )}M; a = [1 zeros(1,N−1)]; b = a; for m=1:M,   I =mod([0:N−1]−D(m), N);   an = a + W(m)*b(I+ (1) );   bn = a − W(m)*b(I+(1) );   a = an; b = bn; end; return;

A brief example of Golay complementary codes will now be provided.Consider Golay complementary codes of length 8 generated using the delayvector D=[2, 1, 4] and seed vector W=[+1, +1, −1]. The MATLAB code“GolayGeneratorII” yields the following two Golay complementary codes

a=[+1, +1, +1, −1, −1, +1, −1, −1]

b=[+1, +1, +1, −1, +1, −1, +1, +1]

The aperiodic autocorrelation function of sequences a and b, denotedhere R^(a) and R^(b) respectively, are

R^(a)=[−1, −2, −1, 0, +1, −2, +1, +8, +1, −2, +1, 0, −1, −2, −1]

R^(b)=[+1, +2, +1, 0, −1, +2, −1, +8, −1, +2, −1, 0, +1, +2, +1]

The sequences a and b are complementary in the sense that the sum, R, oftheir aperiodic autocorrelation functions, R^(a) and R^(b), is perfectin the sense that it has a main peak and no sidelobes

R=[0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0]

Even though a pair of Golay codes is defined to be complementary interms of their aperiodic autocorrelation functions, they have excellentperiodic properties as well. The periodic autocorrelation functionsC^(a) and C^(b) of the pair of above sequences a and b, are

C^(a)=[+8, 0, −4, 0, 0, 0, −4, 0]

C^(b)=[+8, 0, +4, 0, 0, 0, +4, 0]

And the sum, C, of their periodic autocorrelation functions is againperfect, i.e. a main of peak of strength 2N=16 and no sidelobes

C=[8, 0, 0, 0, 0, 0, 0, 0]

When used individually, we are interested in the correlation propertiesof either sequence a or sequence b of the Golay complementary pair. Inthe example above, the magnitude of the highest sidelobe-level of theaperiodic function of either code is 2 and the magnitude of the highestsidelobe-level of the periodic function of either code is 4. So whenanalyzed individually these codes may not be the best codes to be usedas spreading codes.

FIG. 4A shows a circuit that can be configured as an efficient Golaygenerator that may be used to generate a pair of Golay complementarysequences that may be part of a transmitter 210 within a wireless device202. Alternatively, the circuit in FIG. 4A may be configured as anefficient Golay correlator (or matched filter) to be used in a receiver212 within a wireless device 202.

When configured an efficient Golay generator, the input 402 is aKronecker delta sequence δ(n) which has the value one at lag 0 (i.e. atn=0) and zero everywhere else. When configured as an efficient Golaycorrelator, the input 402 may be a quantized received signal x (n).

The Golay code generator/correlator of FIG. 4A comprises a sequence ofdelay components 404-1 to 404-M configured for providing a set of fixeddelays as specified by the elements of the delay vector D, a sequence ofmultipliers 406-1 to 406-M which multiply their input by the elements ofthe seed vector W, a sequence of subtractors 408-1 to 408-M and asequence of adders 410-1 to 410-M. The Golay code generator/correlatoris modular and comprises M stages, where the stage m, 416-m, with m=1,2, . . . , M, comprises a delay component 404-m, a multiplier by a seedelement 406-m, a subtractor 408-m, and an adder 410-m. The delaycomponent 404-m comprises D_(m), delay elements where each delay elementmay comprise R basic memory cells such as Flip-Flops, where R is thenumber of bits used to represent the inputs to the stage m, i.e. theoutputs 412-(m−1) and 414-(m−1) of the previous stage. The stage-moutputs 412-m and 414-m are input to the next stage, i.e. stage m+1.When the circuit 400 operates as an efficient Golay generator, theoutputs 412-M and 414-M of the last stage are the Golay complementarysequences b_(n) and a_(n) with n=0, 1, . . . , N−1. When the circuit 400is configured as an efficient Golay correlator (matched filter), theoutputs 412-M and 414-M of the last stage are the convolution betweenthe input x(n) and the reverse and conjugate of the Golay complementarysequences, i.e. the circuit performs matched filter operations, and theoutputs 412-M and 414-M are x_(n)

b*_(−n), and x_(n)

a*_(−n) respectively.

In stage m, 416-m, the position of multiplier 406-m, adder 410-m, andsubtractor 408-m can be exchanged while still being a Golay codegenerator/correlator. To clarify the above, an alternative Golay codegenerator/correlator is provided in FIG. 4B. The input 452 is configuredas above, i.e. when the circuit is configured as an efficient Golaygenerator, the input is the Kronecker delta sequence δ(n), and when thecircuit is configured as an efficient Golay correlator, the input may bea quantized received signal x(n). The Golay code generator/correlatorcomprises a set of delay components 454-1 to 454-M set according to thedelay vector D, a set of multipliers 456-1 to 456-M where eachmultiplier multiplies its input with the corresponding element from theseed vector W, a set of subtractors 458-1 to 458-M, and finally a set ofadders 460-1 to 460-M.

The Golay codes provided above have multiple drawbacks. The efficientGolay generator for a code length 2^(M) is of high complexity ascompared for example to a maximal-length sequence (m-sequence) generatorfor m-sequences of length 2^(M)−1. The latter uses a linear feedbackshift register (LFSR) with M binary memory elements only. The seconddrawback is that Golay complementary codes do not exist for everylength, for example there are no Golay codes of odd length. Finally,Golay complementary codes have perfect correlation properties when usedtogether in specific ways, but when used individually, these codes arenot necessarily optimal.

Preferred Golay Generator

In one aspect of the present disclosure, Golay codes may be used asspreading codes and the spreading-code(s) generator 318 and/or thespreading code(s) generator 324 in transmitter 302 may be configured togenerate Golay codes using a preferred Golay code generator.

FIG. 5A shows a preferred binary Golay generator 500 according to oneaspect of the disclosure. The circuit 500 generates a pair of Golaycomplementary sequence b_(n), and a_(n) with n=0, 1, . . . , N−1, whereN=2^(M). The delay vector D in this configuration is set to D=[2^(M−1),2^(M−2), . . . , 2⁰] and the seed vector W=[W₁, W₂, . . . , W_(m)] haselements {W_(m)} which are logic 0 or 1. The circuit 500 comprises Mstages. The first stage inputs 512-1 and 514-1 are tied to input 502 setto a Kronecker delta sequence δ(n) which has the value one at lag 0(i.e. at n=0) during the first clock cycle of master clock CLK and zeroeverywhere else. Stage m with m=1, 2, . . . , M has five inputs and twooutputs. The first two inputs 512-m and 514-m are the outputs of theprevious stage, i.e. stage m−1. The third input 516-m is the m^(th) bitof a count-down counter 508 driven by a clock signal 506 labeled CLK.The fourth input is the seed element W_(m), and the fifth input 518-m isa signal that takes on the values 0 and 1 and is generated by thecontrol unit 512.

The counter 508 is initialized to N−1 and decrements by 1 for each clockcycle of signal CLK. The most significant bit of the counter (i.e. bitof weight 2^(N−1)) is signal 516-1 and the least significant bit of thecounter (i.e. bit of weight 2⁰) is signal 516-M. The counter acts as aclock divider, and the signal 516-m is actually a clock signal withfrequency equal to the main signal CLK divided by 2^(M+1−m), i.e.CLK/2^(M+1−m). In another aspect of the disclosure, signal 516-m is usedas an enable signal that enables input 512-m to be input to stage mblock 504-m.

The M bits out of the counter 508 are inverted before being input to thecontrol unit 512 with inverters 510-1 to 510-M. The inverted input isequivalent to a counter initialized to zero and counting up by 1 foreach clock cycle of signal CLK. The control unit 512 generates M controlsignals 518-1 to 518-M. The first control signal 518-1 is 1 when theinput to the control unit (i.e. the up counter) is equal to N/2 and zerootherwise. The m^(th) control signal 518-m is 1 when the input to thecontrol unit is in the following set of 2^(m−1) integers {D_(m),D_(m)+2^(M+1−m), D_(m)+2^(M+2−m), . . . , D_(m)+2^(M)−2M+1−m, and zerootherwise. The M^(th) control signal 518-M is 1 when the input to thecontrol unit is in the following set of N/2=2^(M−)1 integers {1, 3, 5, .. . , N−1} and zero otherwise.

FIG. 5B shows an example implementation of the stage-m in circuit 500according to one aspect of the disclosure. The inputs 542, 544, 546 and550 correspond to inputs 512-m, 514-m, 516-m, and 518-m to stage m incircuit 500. The input 548 is seed element W_(m). The circuit 540comprises a basic memory storage element (such as a Flip-Flop) 546driven by input 542. The output of the 556 is XORed in logic XOR gate548 with signal 548, i.e. with the seed element W_(m). The stage-mcircuit 500 comprises as well a logic INVERTER 560, two AND gates 562and 568, and two XOR gates 564 and 566. The outputs 552 and 554correspond to outputs 516-m and 518-m in stage m of circuit 500. Theoutputs 552 and 554 are equal to the input 544 when the signal 550 isset to zero, i.e. the input passes through to the two outputs. Whensignal 550 is set to one, input 540 should be zero and the output 554 isequal to the output of XOR gate 558 while output 552 is the inverse ofoutput 554.

The preferred Golay generator in FIG. 5A where each stage may beimplemented as shown in FIG. 5B has a very low complexity as compared tothe efficient Golay generator shown in FIG. 4A or FIG. 4B. The outputsof the preferred Golay generator are logic 0 and 1 which when mapped tobinary levels −1 and +1 yields equivalent output to the efficient Golaygenerator in FIG. 4B. In order to compare the two architectures,consider for example the generation of a binary Golay code of length128, i.e. M=7, and N=128, with delay vector D=[2^(M−1), 2^(M−2), . . . ,2⁰] and an arbitrary binary seed vector W=[W₁, W₂, W_(m)]. The elements{W_(m)} are set to logic 0 or logic 1 in FIG. 5A whereas they are set to+1 or −1 in FIG. 4A and FIG. 4B. Each stage in the preferred Golaygenerator comprises a single basic memory storage element such as aFlip-Flop, and therefore there the preferred Golay generator comprises Mbasic memory storage elements and some logic gates, a counter and acontrol unit driven by a counter. The efficient Golay generatorcomprises 2(N−1)=254 basic memory storage elements, 2M multiplexers toimplement multiplication by the elements of the seed vector W, 2M addersand 2M subtractors where each of the adders and subtractors has 2 inputswith each input being represented with 2 bits (to represent +1, 0, and−1) and 2 bits output. The m-th stage in FIG. 4A or FIG. 4B has 2^(m)memory elements where each memory element comprises two basic memorystorage elements such as Flip-Flops. Therefore the total number of basicstorage elements is 2(2⁶+2⁵+ . . . +2⁰)=254 as indicated above.

In another aspect of the disclosure, in the preferred efficient Golaygenerator in FIG. 5A, the stage m implementation shown in FIG. 5B can beconfigured in many different ways while still yielding a pair of binarycomplementary Golay codes. For example, the XOR gate 558 in FIG. 5B canbe moved to the lower branch, i.e. the lower input of the XOR gate canbe excited by signal 544 instead of being excited with the basic memorystorage element output. In addition, the XOR gate 560 can be placed atthe lower input to the AND gate 568. Furthermore, the XOR gate 558 andthe INVERTER 560 can be moved simultaneously as described above.

In another aspect of the disclosure, the stages 1 to M in the preferredefficient Golay generator in FIG. 5A can be configured to operate withany arbitrary non-binary (possibly complex) seed vector W. Consider thegeneration of multilevel complex Golay complementary sequences where thereal and imaginary can be represented with R-bits integers. FIG. 5Cshows an implementation of the stage m, where m=1, 2, . . . , M,according to one aspect of the disclosure. The inputs 572, and 574 arethe outputs of the previous stage, i.e. stage m−1, and each can berepresented as two R-bits integers, one R-bits integer for the real partand one R-bits integer for the imaginary part. The memory component 586is clocked with signal 576 corresponding to the m^(th) bit 516-m in FIG.5A. The memory component 586 comprises 2R basic memory storage elementssuch as flip-flops (i.e. 2R flip-flops), R basic memory storage elementsto store the real part and R basic memory storage elements to store theimaginary part. The complex output of the memory component 586 ismultiplied using a complex multiplier with input 578, where input 578 isthe m^(th) seed element W_(m). The output of multiplier 578 is beinggated through multiplier 590 with control signal 580 corresponding tothe m^(th) control signal 518-m in FIG. 5A. By gating we mean that whencontrol signal 580 is one, the output of multiplier 590 passes throughto subtractor 592 and to adder 594, and when control signal 580 is zero,the output of multiplier 590 is being blocked, i.e. set to zero. Theoutput of multiplier 590, i.e. the gated signal, and signal 574 areinput to subtractor 592 and adder 594 to yield outputs 582 and 584,where each output is composed of an R-bit integer for the real part andR-bit integer for the imaginary part.

According to another aspect of the present disclosure, the stage mcircuit in FIG. 5C can be manipulated in many ways while still yieldinga pair of Golay complementary sequences when used in the preferred Golaygenerator shown in FIG. 5A. As an example, multiplier 588 can be movedto the lower branch, i.e. connected to input 574 rather than to theoutput of the memory component 586. Multiplier 590 can be moved to lowerbranch along with multiplier 588. Subtractor 592 and adder 594 can beexchanged, and so on.

According to another aspect of the disclosure, the stages 1 to M in thepreferred efficient Golay generator in FIG. 5A can be configured tooperate with arbitrary delay vector D and any arbitrary non-binary(possibly complex) seed vector W. The stage m memory component 586 inFIG. 5C, changes its state 2^(m−1) times, i.e. stores its input at clockcycles {0, 2^(M+1−m), 2^(M+2−m), . . . 2^(M)−2^(M+1−m)} of master clockCLK 506 in FIG. 5A. Gating signal 580 in FIG. 5C is high 2^(m−1) timesat clock cycles {D_(m), D_(m)+2 ^(M+1−m), D_(m)+2^(M+2−m), . . . ,D_(m)+2^(M)−2^(M+1−m)} of master CLK 506 in FIG. 5A. If D_(m) is lessthan 2^(M+1−m), i.e. if the first stored input (stored at clock cycle j)in the memory component is being consumed (at clock cycle D_(m)) beforethe memory component stores its second input (at clock cycle 2^(M+1−m)),than stage-m in FIG. 5B for the binary case, and stage-m in FIG. 6A forthe general case need not to be changed. If on the other hand If D_(m)is bigger than 2^(M+1−m) but less than 2^(M+2−m), than in order for thesecond input not to overwrite the first input before being consumed, thememory component 556 in FIG. 5B and the memory component 616 in FIG. 6Ashould contain two memory elements instead of one in one aspect of thedisclosure. The remainder of the circuits in FIG. 5B and FIG. 6A remainunchanged. For example memory component 556 in FIG. 5B may beimplemented as a shift register of two Flip-Flops to accommodate theabove described matter. Therefore, in one aspect of the disclosure, thememory component 556 in FIG. 5B and the memory component 586 in FIG. 5Cshould contain L memory elements instead of one where L is the indexsatisfying the following constraint 2^(M+L−1−M)≦D_(m)<2^(M+L−m).According to the aspect of the disclosure, memory element 556 in FIG. 5Bwould comprise L basic memory storage element (which can be implementedfor example as a shift register of L flip-flops) and memory element 586in FIG. 5C, would comprise 2R basic memory storage elements (2R flipflops for example), R basic memory storage elements for the real partand R basic memory storage elements for the imaginary part.

Spreading of Transmission Signal

In another aspect of the present disclosure, the spreading-code(s)generator 314 in FIG. 3 may be configured to generate generalized-Golayspreading codes.

A generalized-Golay spreading code is a code that has a Golaydecomposition, i.e. a code formed by concatenating a plurality of Golaycodes as shown in FIG. 3. The Golay codes used to form ageneralized-Golay code can be of type “a” or “b”, i.e. either one of thecomplementary pair of Golay codes can be used, and can be of differentlengths. As shown in FIG. 6A, a Generalized-Golay code of lengthN=N₁+N₂+ . . . +N_(L) is formed by concatenating a first Golay code602-1, labeled X₁, of type “a” or “b” and of length N₁, to a second codeGolay code 602-2, labeled X₂, of type “a” or “b” and of length N₂ and soon. The number of Golay codes, L, is such that L≧2. Unlike Golay codes,generalized-Golay codes can be of any length, i.e. even, odd, prime,power of two, etc.

In the following, an example of generalized-Golay code according to oneaspect of the disclosure is provided. There are no Golay complementarysequences of length 24. In accordance to one aspect of the disclosure, ageneralized-Golay sequence of length 24 can be generated by appending aGolay code of length 8 to a Golay code to a length 16. The Golaycomponents should be chosen properly as for the generalized Golay codeto have good correlation properties. A construction example is asfollows. First, a pair of Golay complementary codes a₁ or sequence b₁ oflength 16 can be generated using delay vector D=[4, 8, 1, 2] and seedvector W=[+1, +1, +1, +1]:

a₁=[+1, +1, +1, −1, +1, +1, +1, −1, +1, −1, +1, +1, −1, +1, −1, −1]

b₁=[+1, +1, −1, +1, +1, +1, −1, +1, +1, −1, −1, −1, −1, +1, +1, +1]

Second, a pair of Golay complementary codes a₂ and b₂ of length 8 can begenerated using delay vector D=[4, 2, 1] and seed vector W=[+1, +1, +1]:

a₂=[+1, +1, +1, −1, +1, +1, −1, +1]

b₂=[+1, −1, +1, +1, +1, −1, −1, −1]

Finally, a generalized-Golay code c of length 24 is formed as follows

c=[a₂ b₁]=[+1, +1, +1, −1, +1, +1, +1, −1, +1, −1, +1, +1, −1, +1, −1,−1, +1, −1, +1, +1, +1, −1, −1, −1]

The generalized-Golay sequence c has good correlation properties. Themaximum sidelobe-level magnitude of the aperiodic and periodicautocorrelation functions is 4 compared to a peak of magnitude 24 whichmakes it a good spreading code. The generalized code d=[b₂ a₁](constructed from the sequences b₂ and a₁ complementary to the sequencesa₂ and b₁ used to form c) is not complementary to c; the sum of theiraperiodic autocorrelations have very few sidelobes and therefore it ispseudo-complementary.

A second example of a generalized-Golay code according to one aspect ofthe disclosure is provided next. A generalized code c of length 19 isgenerated by concatenating three short codes. The first constituentGolay code a₁=[1] is of type “a” and length 1, the second constituentGolay code a₂=[+1, +1] is of type “a” and length 2 generated usingD₂=[1] and W₂=[+1], and the third constituent Golay code b₃=[+1, −1, −1,+1, −1, −1, +1, +1, −1, −1, −1, −1, +1, −1, +1, −1] is of type “b” andlength 16 generated using D₃=[4, 1, 8, 2] and W₃=[−1, −1, −1, +1]. Theresulting generalized code c is shown below

c=[+1, +1, +1, +1, −1, −1, +1, −1, −1, +1, +1, −1, −1, −1, −1, +1, −1,+1, −1]

This length 19 sequence has a periodic autocorrelation function withmaximum sidelobe-level magnitude of 1 as compared to the main peak of 19and has similar properties to maximal length sequences also known asm-sequences.

In one aspect of the disclosure, the generalized Golay codes can begenerated by concatenating the outputs of a plurality of preferred Golaygenerators as shown in FIG. 6B. This shall be referred to as preferredGeneralized Golay generator. The generalized-Golay code in FIG. 6B is oflength N=N₁+N₂+ . . . +N_(L) and can be written as

x(n)=x₁(n)+x₂(n−N₁)+ . . . +x_(L)(n−N₁−N₂− . . . −N_(L−1))

And therefore can be implemented as shown in FIG. 6B. The input 612 is aKronecker delta sequence δ(n) which has the value one at lag 0 (i.e. atn=0) and zero everywhere else. The input 612 is being delayed throughdelays 614-1 to 614-(L−1) before exciting the preferred Golay generators618-1 to 618-(L−1). The first delay component 614-1 may be implementedas N₁ basic memory storage elements (such as N₁ flip-flops), and the(L−1)^(th) delay element 614-(L−1) may be implemented as N_(L−1) basicmemory storage elements (such as N₁ flip-flops). The output 618-1 ofpreferred Golay generator 616-1 is the first Golay code x₁ (n), theoutput 618-2 of preferred Golay generator 616-2 is the second Golay codein the Golay decomposition, i.e. x₂(n−N₁) delayed by N₁ elements, andthe output 618-L of preferred Golay generator 616-L is the L^(th) Golaycode in the Golay decomposition, i.e. x_(L)(n−N₁−N₂− . . . −N_(L−1))delayed by N₁+N₂+ . . . N_(L−1). The outputs 618-1 to 619-L aredemultiplexed through demultiplexer 620 to yield the desired generalizedGolay code at output 622. In one aspect of the disclosure, the memorycomponents in the first stages of preferred Golay generators 616-1 to616-L may be shared in order to reduce hardware complexity. As anexample of preferred generalized Golay code generation, the length 24generalized complementary code described above can be generated usingtwo preferred Golay generators, a first preferred binary Golay generator616-1 as shown in FIG. 5B configured for a delay vector D=[4, 8, 1, 2]and seed vector W=[1, 1, 1, 1] and a second preferred binary Golaygenerator 616-2 as shown in FIG. 5B configured for a delay vector D=[4,2, 1] and seed vector W=[1, 1, 1].

Despreading of Received Signal

According to one aspect of the disclosure, a received spread data streamis processed at the receiver using a generalized efficient Golaycorrelator. As an example, the received signal 332′ in FIG. 3, may bedespread using a generalized efficient Golay correlator as part of thepreamble detection & synchronization block 322′.

FIG. 8A shows a generalized efficient Golay correlator according to oneaspect of the disclosure. The generalized Golay correlator functions asa matched filter to a spread transmitted signal using a generalizedGolay sequence c(n) such as that illustrated in FIG. 6A. The generalizedGolay correlator may also provides matched filtering to othergeneralized Golay codes constructed using the same constituent Golaycodes as generalized Golay sequence c(n). The input signal 802, denotedhere y(n), is input to a shift register composed of memory component804-1 to memory component 804-(L−1). In the general case, the inputsignal 802 can be a complex number and may be represented using R-bitsfor its real part and R-bits for its imaginary part. In this case,memory component D₁ is composed of N₁ delay elements (N₁ being thelength of the first Golay code 602-1 in FIG. 6A) where each delayelement comprises 2R-bits, R-bits to store the real part and R-bits tostore the imaginary part, and memory component D₂ is composed of N₂delay elements (N₂ being the length of the first Golay code 602-2 inFIG. 6A) where each delay element comprises 2R-bits, R-bits to store thereal part and R-bits to store the imaginary and so on. Signal 802, y(n),is input to a first efficient Golay correlator 806-1, and the output808-1 is the convolution between input y(n) and a matched filter impulseresponse to the first Golay component 602-1 in FIG. 6A, i.e., output808-1 equals to y(n)

x₁*(−n). The second output 810-1 is the convolution between input y(n)and a matched filter impulse response to the complementary of the firstGolay code x₁(n). The output of memory component 804-1 is the inputsignal delayed by N₁ chips, i.e. y(n−N₁) and is input to the secondefficient Golay correlator 806-2. The output of 806-2 is the convolutionbetween input y(n−N₁) and a matched filter impulse response to thesecond Golay component 602-2 in FIG. 6A, i.e., output 808-2 equals toy(n−N₁)

x₁*(−n). The second output 810-2 is the convolution between inputy(n−N₁) and a matched filter impulse response to the complementary ofthe second Golay code x₂(n). The output of memory component 804-(L−1) isthe input signal delayed by N₁+N₂+ . . . +N_(L−1) chips, i.e. y(n−N₁−N₂−. . . −N_(L−1)) and is input to the L^(th) efficient Golay correlator806-L. The output of 806-L is the convolution between input y(n−N₁−N₂− .. . −N_(L−1)) and a matched filter impulse response to the last Golaycomponent 602-L in FIG. 6A, i.e., output 808-L equals to y(n−N₁−N₂− . .. −N_(L−1))

x_(L),*(−n). The second output 810-L is the convolution between inputy(n−N₁−N₂− . . . −N_(L−1)) and a matched filter impulse response to thecomplementary of the L^(th) Golay code x_(L)(n). The outputs 808-1,808-2, to 808-L of the matched filters to the Golay components arecombined through adder 812-1 to yield a generalized Golaycorrelator/matched filter output 814-1, y(n)

c*(−n). The outputs 801-1, 802-2 to 802-L and 810-1, 810-2 to 810-L canbe combined in different ways to provide convolution between inputsignal y(n) and a multitude of generalized Golay codes constructed usingthe same constituent (components) Golay codes but different types ascode c(n), i.e. the output 814-2 is the output of the convolutionbetween y(n) and a matched filter to a second generalized Golay code,and 814-R is the output of the convolution between y(n) and a matchedfilter to an R^(th) generalized Golay code. As an example, output 814-2can be configured to provide the convolution between input y(n) and amatched filter to the pseudo-complementary of generalized Golay codec(n). Efficient Golay correlators 806-1 to 806-L may be implemented asshown in FIG. 4A or FIG. 4B.

According to one aspect of the disclosure, the memory components 804-1to 804-(L−1) and the memory components in the first stages of efficientGolay correlators 806-1 to 806-L may be shared in order to reducehardware complexity. An example of this aspect is provided next.Consider the matched filter implementation to the reverse of generalizedGolay code of length 32

c=[b₁ b₂]=[+1, −1, +1, −1, +1, +1, −1, −1, +1, −1, −1, +1, +1, +1, +1,+1, +1, −1, −1, +1, −1, −1, −1, −1, +1, +1, −1, −1, −1, +1, −1, +1]constructed from two Golay codes of type “b”, code b₁ of length 16generated using delay vector D=[8, 2, 4, 1] and seed vector W=[+1, +1,+1, +1], and code b₂ of length 16 is generated using delay vector D=[8,1, 4, 2] and seed vector W=[+1, +1, +1, −1].

The generalized efficient Golay correlator/matched filter to a receivedsignal spread with the reverse code c(N−n) is shown in FIG. 8B accordingto one aspect of the disclosure. The input signal 822 is fed to a firstGolay efficient correlator 824. The memory components 830-1, 803-2,830-3 and 830-4 comprise 8, 1, 4, and 2 delay elements corresponding tothe delay vector D=[8, 1, 4, 2]. Each delay element comprises 2R-bits,R-bits to store the real part and R-bits to store the imaginary part. Inaddition to memory components, the first efficient Golay correlatorcomprises subtractors 832-1, 832-2, and 832-3 and adders 834-1, 834-2,834-3, and 832-4. The component 830-4 is an adder rather than asubtractor since the last seed element of the seed vector W=[+1, +1, +1,−1] is −1. The outputs of the first efficient Golay correlator 840-1 and840-2 are the convolution between the input signal 822 and the matchedfilter response to codes b₂, and a₂ respectively. According to FIG. 8A,the input 802 should be delayed by D₁ chips (D₁=16) before being inputto the second efficient Golay correlator. This is implemented in FIG. 8Bby sharing the first memory component 830-1 of the first efficient Golaycorrelator and using the output of 830-1 to feed a second memorycomponent 850 of 8 delay elements. This is equivalent to delaying theinput signal 822 by 16 delay elements. Sharing more components betweenthe first efficient Golay correlator 824 and the second efficient Golaycorrelator 826 is further possible depending on the delay vectors andseed vectors. The output of memory component 850 feeds the efficientGolay correlator 826. The second efficient Golay correlator 826comprises memory components 860-1, 860-2, 860-3 and 860-4 set accordingto delay vector D=[8, 2, 4, 1] of code b₁, a set of subtractors 862-1,862-2, 862-3 and 862-4, and a set of adders 864-1, 864-2 and 864-3. Theresulting outputs 870-1 and 870-2 of the second efficient Golaycorrelator 826 are the convolution between the input signal 822 and thematched filter response to codes b₁ and a₁ respectively with the overallresults delayed by 16 chips. Finally, outputs 840-1 and 870-1 arecombined through adder 872-1 to yield desired output 874-1 which is theoutput of the generalized Golay correlator/matched filter to code c(N−n). Combining outputs 840-2 and 870-2 through adder 872-2 to yieldssignal 874-2 which is the output of the generalized Golaycorrelator/matched filter to the pseudo-complementary code of codec(N−n).

In one aspect of the disclosure, the generalized efficient Golaycorrelator can be used to despread a modulated data stream with a pairof pseudo complementary generalized Golay codes. For example, thecircuit in FIG. 8B provides two outputs 872-1 and 872-2 which may be thecorrelation between the received modulated data stream and two pseudocomplementary generalized Golay codes. The two outputs can be used todecode the encoded bits within the data stream.

For high speed applications, it is advantageous to process the receivedsignal in parallel according to one embodiment of the invention. As anexample, if the received signal input 822 in FIG. 8B to be despread isdemultiplexed by a factor of four; than the serial generalized Golaycorrelator shown in FIG. 8B can be modified accordingly and will bereferred to as a generalized parallel Golay. The parallelization of thegeneralized Golay correlator in FIG. 8A will be illustrated with theexample in FIG. 8B. It is sufficient to demonstrate the procedure forthe efficient Golay correlator 824. Let y (n) be the input 822, and letp₄(n) be the output 840-1 and q₄(n) the output 840-2, and let Y(z),P₄(z), and Q₄(z) be their respective z-transforms. Than we have

$\begin{bmatrix}{P_{4}(z)} \\{Q_{4}(z)}\end{bmatrix} = {{{{\begin{bmatrix}z^{- 2} & 1 \\{- z^{- 2}} & 1\end{bmatrix}\begin{bmatrix}{- z^{- 4}} & 1 \\z^{- 4} & 1\end{bmatrix}}\begin{bmatrix}{- z^{- 1}} & 1 \\z^{- 1} & 1\end{bmatrix}}\begin{bmatrix}{- z^{- 8}} & 1 \\z^{- 8} & 1\end{bmatrix}}\begin{bmatrix}{Y(z)} \\{Y(z)}\end{bmatrix}}$

The above can be implemented in the stages as follows

${\begin{bmatrix}{P_{4}(z)} \\{Q_{4}(z)}\end{bmatrix} = {\begin{bmatrix}z^{- 2} & 1 \\{- z^{- 2}} & 1\end{bmatrix}\begin{bmatrix}{P_{3}(z)} \\{Q_{3}(z)}\end{bmatrix}}},{\begin{bmatrix}{P_{3}(z)} \\{Q_{3}(z)}\end{bmatrix} = {\begin{bmatrix}{- z^{- 4}} & 1 \\z^{- 4} & 1\end{bmatrix}\begin{bmatrix}{P_{2}(z)} \\{Q_{2}(z)}\end{bmatrix}}},{\begin{bmatrix}{P_{2}(z)} \\{Q_{2}(z)}\end{bmatrix} = {\begin{bmatrix}{- z^{- 1}} & 1 \\z^{- 1} & 1\end{bmatrix}\begin{bmatrix}{P_{1}(z)} \\{Q_{1}(z)}\end{bmatrix}}},{\begin{bmatrix}{P_{1}(z)} \\{Q_{1}(z)}\end{bmatrix} = {\begin{bmatrix}{- z^{- 8}} & 1 \\z^{- 8} & 1\end{bmatrix}\begin{bmatrix}{P_{2}(z)} \\{Q_{2}(z)}\end{bmatrix}}}$

Performing a polyphase decomposition of the above equations, using fourphases, we obtain the circuit shown in FIG. 9. First four phasesdecomposition is applied to input signal 902. This is achieved using ademultiplexer 904 and the outputs 906-1 to 906-4 are the four phases ofinput signal y(n). If samples of the input signal 902 are incoming at aspeed CLK, than each of signals 906-1 to 906-4 will be running atquarter the speed, i.e. at CLK/4. The first stage 932-1 computes thefour phases of the partial correlation signals P₁ (z) and Q₁ (z). Thedelay z⁻⁸ becomes a delay of 2 in the four phase decomposition.Therefore, memory components 908-1 to 908-4 comprise two delay elementseach. The output of the delay elements along with the four phases of theinput signal, i.e. 906-1 to 906-4, are input to subtractors 910-1 to910-4 and adders 912-1 to 912-4. The outputs of the subtractors 910-1 to910-4 are the four phases of signal p₁ (n) and the outputs of the adders912-1 to 912-4 are the four phases of signal q₁ (n). The second stage932-2 computes the four phases of signal p₂(n) and q₂(n). This stagecontains memory components 914-1 to 914-7 comprising a single delayelement each, subtractors 916-1 to 916-4, and adders 918-1 to 918-4. Theinterconnections between the output of delay components 914-1 to 914-7and subtractors 916-1 to 916-4, and adders 918-1 to 918-4 correspond tothe polyphase decomposition of matrix

$\begin{bmatrix}{- z^{- 1}} & 1 \\z^{- 1} & 1\end{bmatrix}\quad$

The third stage computes the four phases of signal p₃(n) and q₃(n) usingmemory components 920-1 to 914-4 comprising a single delay element each,subtractors 922-1 to 922-4, and adders 924-1 to 924-4. Like stage 1, theinterconnections here between memory component 920-1 to 920-4 andsubtractors 922-1 to 922-4, and adders 924-1 to 924-4 do not involvesignals from other phases, i.e. subtractor 922-1 and adder 922-1 for thefirst phase for example do not use any signals from 920-2, 920-3 and920-4 that is memory components from phases 2, 3, and 4. This is becausethe delay in the multiplication

$\begin{bmatrix}{P_{3}(z)} \\{Q_{3}(z)}\end{bmatrix} = {\begin{bmatrix}{- z^{- 4}} & 1 \\z^{- 4} & 1\end{bmatrix}\begin{bmatrix}{P_{2}(z)} \\{Q_{2}(z)}\end{bmatrix}}$

is z⁻⁴ and therefore no interconnections between the different phases isrequired. Finally, the fourth stage computes the four phases of thedesired output p₄(n). This stage comprises delay components 926-1 to926-6 comprising a single delay element and adders 928-1 to 928-4. Theoutputs 930-1 to 930-4 are four phases of the desired output p₄(n).

Therefore, according to one aspect of the disclosure, a received spreaddata stream may be despread using a generalized efficient parallel Golaycorrelator/matched filter.

Wireless Body Area Networks

WBAN (Wireless Body Area Networks) consists of SC (Single Carrier)mobile sensors, either wearable or implanted into the human body, whichmonitor vital body parameters and movements. These devices,communicating through SC wireless technology (such as CDMA), transmitdata from the body to a home base station, from where the data can beforwarded to a health center, hospital, clinic, or elsewhere, realtime.

The sensors/wireless devices used in WBAN would have to be low incomplexity, small in form factor, light in weight, very power efficient,and easily configurable.

The battery life in WBAN devices is expected to be very long; thereforethere is a need in the art for power efficient single carrier system.

Furthermore, the low cost WBAN stations (devices) would have to use lowcost crystals with high ppm (parts per million) on the frequencyuncertainty, and may even be crystal-less and therefore have even higherppm. As an example, a STA with 100 ppm operating in the 2.4 GHzunlicensed band, will have an LO (local oscillator) frequency drift byup to 240 KHz from the center frequency. Therefore two communicatingSTAs might be off by up to 480 KHz with respect to each other, anddevices has to be able to decode signals with such large frequencyoffsets with little loss in performance.

When detected coherently, spread spectrum sequences might perform poorlydue to the high frequency drift between two STAs, therefore there is aneed in the art for spread spectrum sequences that are resilient to highfrequency errors between communicating devices.

Constant Envelope Modulation

In accordance to one aspect of the disclosure, the spread spectrum SCdata stream is CPM modulated and the transmitted data stream is constantenvelope.

According to one aspect of the disclosure, a 2-CPM (Continuous PhaseModulation) signal with binary alphabet and modulation index h₂ may begenerated using filtered differentially encoded πh₂-continuously rotateddifferential pseudo BPSK (Binary Phase Shift Keying) modulated signal,referred to here as πh₂-DPBPSK (Differential Pseudo BPSK) and furtherdetailed below. The filtered πh₂-DPBPSK is an approximation to a 2-CPMand has a quasi-constant envelope. The πh₂ continuous rotation meansthat the k^(th) symbol is rotated by πh₂, where a symbol is a singlechip.

The CPM modulation family includes CPFSK (Continuous Phase FrequencyShift Keying), and special cases of MSK (Minimum shift Keying), GMSK(Gaussian Minimum Shift Keying), GFSK (Gaussian Frequency Shift Keying).

According to one aspect of the disclosure, the 2-CPM modulation is a2-GMSK (Gaussian Minimum shift Keying), also known as 2-GFSK (GaussianFrequency shift Keying).

According to one aspect of the disclosure, a 2-CPM modulator as shown inFIG. 10A with binary input {d (k)} drawn for the alphabet {0, 1} (i.e.input 1002) and complex output 1006, may be implemented as shown in FIG.10B. The binary input data stream 1022, i.e. {d (k)} (Which correspondsto input 1002 in FIG. 10A) is input to a pseudo-BPSK constellationmapper block which outputs the pseudo-BPSK signal 1026 given by I(k)=exp[−j2πh₂d(k)]. Signal 1026 is termed here pseudo-BPSK since itbelongs to the following constant amplitude alphabet {1, exp[−j2πh₂]}(corresponding to d(k)=0, and d(k)=1), and in the special important casewhere the modulation index is h₂=½, signal pseudo-BPSK becomes exactlyBPSK with alphabet {±1}.

The pseudo-BPSK signal 1026 is differentially encoded in 1028 and theoutput is a DPBPSK (Differentially encoded Pseudo-BPSK) signal denotedhere A (k) and computed as follows

A(k)=A(k−1)I(k), k=0,1,2, . . .

-   -   with A(−1)=1        The differential encoding operation is further illustrated in        FIG. 10C where output signal A (k) in 1068 is generated by        multiplying the former output A (k−1) initialized to 1 in 1072        by input I (k) in 1062. In the special case where the modulation        index is h₂=½, the output signal 1030 becomes DBPSK        (Differentially encoded BPSK).

The DPBPSK signal A (k) in 1030 is continuously rotated by πh₂, that isthe first chip (symbol) is rotated by zero radians, the second chip isrotated by angle πh₂ radians, the third chip is rotated by angle 2πh₂radians and so on. This is further illustrated in FIG. 10D, where theDPBPSK input signal 1082 is rotated using multiplier 1086 by 1084 toproduce output 1088 denoted B (k) as follows

B(k)=A(k)exp(jkπh ₂)

For the special case where the modulation index is h₂=½, the signal B(k) at the output of 1034 is known in the literature as π/2-DBPSK andmay be generated in many different ways. For this special case, evensymbols B(2k) take on the following values {±1}, whereas odd symbolsB(2k+1) take on the following values {±j}. Therefore in conclusion,blocks 1024, 1028, and 1032 provide an example implementation ofπh₂-DPBPSK modulation and in the special case where the modulation indexis h₂=½, this reduces to the known π/2-DBPSK modulation.

The πh₂-DPBPSK modulated complex signal 1034 is input to I&Q filters in1036 where the I component (i.e. in-phase or real part) is filtered by afirst filter g (t) and the Q component (i.e. quadrature or imaginarypart) is filtered by a second filter that is preferably identical to thefirst filter g (t), and the complex output 1038 is referred to asfiltered πh₂-DPBPSK and labeled as x (t).

Therefore, according to one aspect of the disclosure, the output signalmay be expressed as a quasi-constant envelope linearly modulated signalwith πh₂-DPBPSK constellation points,

${x(t)} = {\sum\limits_{k}{{B(k)}{g\left( {t - {kT}} \right)}}}$

where T is the chip duration. The filter g(t) may be implemented indigital or analog. As an example, a Bessel filter, a Butterworth filter,a Chebyshev filter, or an elliptic analog filter may be used. In apreferred embodiment of the invention, the filters are designed in sucha way that the complex signal x(t) has a quasi-constant envelope. Thefiltering is preferably chosen to provide a quasi-envelope signal.

According to one aspect of the disclosure, a 2-CPM signal with binaryalphabet and modulation index h₂=½ as shown in FIG. 11A may be generatedusing a filtered π/2-BPSK modulation as shown in FIG. 11B.

FIG. 11B is a special case of FIG. 10B. Since the pseudo-BPSK becomesexact BPSK in this case, it is possible to differential encode thesignal first as shown in 1124 and then apply a BPSK mapping as shown in1128.

The differential encoding may be implemented as shown in FIG. 11Cwherein the binary input stream 1162 is XORed in 1164 with delayedoutput 1172. The output stream 1168 takes on logic levels “0” and “1”and is stored in memory element 1170 to provide the feedback signal1172. The memory element 1170 may be implemented as a single flip-flopfor example.

The DBPSK signal 1130 is continuously rotated by Tr/2 as shown in FIG.11D, where the k^(th) input DBPSK chip is rotated by kπ/2 radians.Therefore, even number chips (i.e. chips number 0, 2, 4, . . . ) maytake on the values +1 and −1, whereas odd chips (i.e. chips number 1, 3,5, . . . ) may take on the values +j and −j. A π/4 rotation (not shownin the FIG. 11B) may be applied to the π/2-DBPSK signal 1134 beforebeing input to 1136. The π/4 rotation maps for level +1 to +1+j, +j ismapped to −1+j, −1 is mapped to −1−j and finally −j is mapped +1−j.

According to one aspect of the disclosure, a 2-CPM signal with amodulation index of h₂=½ at the output of 328′ in FIG. 3. aftertraveling through the multipath channel 334 and down-converted tobaseband may be modeled as a regular linear modulation with πh2-DPBPSKconstellation through a linear multipath channel as follows at time t=nTwhere T is the chip duration

${r(n)} = {{\left\lbrack {j^{n}{\sum\limits_{k = 0}^{L}{{h(k)}{A\left( {n - k} \right)}}}} \right\rbrack ^{{j2\pi}\; {nfT}}} + {D\; C} + {w(n)}}$

where h(k) is the channel of length L+1 chips as seen by the receiverand comprises the cascade of the transmit filter, multipath channel, andreceive filter, {A(n)} are the differentially encoded BPSK chips (withvalues ±1) related to the information chips {I(n)} by differentialencoding, i.e. A(n)=A(n−1)1(n), f is the frequency offset between thetransmitter and receiver due to ppm drift on both sides and Dopplershift, DC is constant offset which may be present in direct conversionreceivers, and w(n) is the additive white Gaussian noise plusinterference. Not shown in the above equation is the time drift whichmay be modeled as a slowly time varying channel. For an arbitrarymodulation index, the above equation becomes

${r(n)} = {{\left\lbrack {^{j\; n\; \pi \; h_{2}}{\sum\limits_{k = 0}^{L}{{h(k)}{A\left( {n - k} \right)}}}} \right\rbrack ^{j\; 2\pi \; {nfT}}} + {D\; C} + {w(n)}}$

After DC removal, frequency correction, and continuous πh₂-de-rotation,the received signal takes the following form

${y(n)} = {{\sum\limits_{k = 0}^{L}{{h(k)}{A\left( {n - k} \right)}}} + {w(n)}}$

And any linear data detection method may be used to recover the transmitdata stream {I(n)}. As an example, differential detection, MLSE (MaximumLikelihood Sequence Estimation) receiver, DFE (Decision feedbackEqualizer), MMSE (Minimum Mean Square Equalizer), may be used to recoverthe transmit data stream.

In order to increase the data rate within a given bandwidth, 4-CPM maybe used instead of 2-CPM. The complex envelope of a 4-CPM signal may berepresented mathematically by the following form

${x(t)} = {\exp\left\lbrack {{j2\pi}\; h_{4}{\sum\limits_{k}{{I(k)}{q\left( {t - {kT}} \right)}}}} \right\rbrack}$

where T is the chip duration, h₄ is the modulation index, {I (k)} arethe information symbols in the 4-ary alphabet {±1, ±3}, and q(t) is thephase response of the system with q(MT)=½ for some integer M>O. The peakfrequency deviation f_(d) is related to the modulation index h₄ by thefollowing formula f_(d)=h₄/(2T). The information symbols {I(k)} maythemselves be generated from input binary data stream {d(k)} using graymapping as shown below

d(2k) d(2k + 1) I(k) 0 0 +1 1 0 +3 1 1 −3 0 1 −1The gray mapping may be alternatively expressed as follows

I(k)=[1+2d(2k)][1−2d(2k+1)]

A 2-CPM signal may be represented by the same above equation with theexception that the information symbols {I(k)} are from a 2-ary alphabet{±1} and the modulation index is denoted as h₂. The information symbols{I(k)} are related to input signed binary data stream {d(k)} byI(k)=d(k).

Generation of a 4-CPM signal is complex since 4-CPM modulation is highlynon-linear modulation and requires the computation of the cosine of thephase φ(t)=2πh₄Σ_(k)I(k)q(t−kT) for the in-phase component and the sineof the phase φ(t) for quadrature component and the use of highresolution (multi-bits) DACs. Therefore, there is a need in the art foran efficient linear representation and generation of 4-CPM modulation.

According to another aspect of the disclosure, a 4-CPM (such as4-GMSK/4-GFSK) signal may be generated using a quasi-constant envelopefiltered generalized differentially encoded πh₄-continuously rotatedQPSK (Quadrature Phase Shift Keying) modulated signal, referred to hereas πh₄-GDQPSK as detailed below. The πh₄ continuous rotation means thatthe k^(th) chip is rotated by πh₄. This linear representation of 4-CPMsimplifies the receiver design tremendously we shall see later.Therefore, according to one aspect of the disclosure, the 4-CPMmodulator in FIG. 12A may be implemented as shown in FIG. 12B accordingto one aspect of the disclosure.

The input binary data stream {d(k)} in 1212 from the alphabet {0,1} isparallelized in the S2P (Serial To Parallel) block 1214, and the output1216 corresponds to even bits {d(2k)} whereas output 1218 corresponds toodd bits {d(2k+1)}. The two bit streams 1216 and 1218 are input to agray-coded pseudo-QPSK constellation mapper block 1220 which outputspseudo-QPSK signal 1222 written as

J(k)=exp{jπh ₄ [I(k)−1]} with I(k)=[1+2d(2k)][1−2d(2k+1)]

The signal is termed here pseudo-QPSK since the output 1222, i.e. J (k)belongs to the following constant amplitude alphabet {1, exp[±j2πh₄],exp[−j4πh₄]} and in the special where modulation index is h₄=¼, thesignal 1222 becomes exact QPSK with alphabet {±1, ±j}.

The pseudo-QPSK signal 1222 is differentially encoded in 1224 and theoutput 1226 is a DPQPSK (Differentially encoded Pseudo-QPSK) signaldenoted here A(k) and computed as follows

A(k)=A(k−1)J(k), k=0,1,2, . . .

-   -   with A(−1)=1        The differential encoding operation is further illustrated in        FIG. 12C which operates in the same way as described for FIG.        10C. In the special case where the modulation index is h₄=¼, the        output signal 1226 is DQPSK (Differentially encoded QPSK).

The DPQPSK signal A(k) in 1226 is continuously rotated by πh₄, that isthe first chip is rotated by angle zero, the second chip is rotated byangle πh₄ radian, the third chip is rotated by angle 2πh₄ radian and soon. This is further illustrated in FIG. 12D, where DPQPSK input signal1282 is rotated by 1284 using multiplier 1286 to produce rotated output1288 denoted B(k) and expressed as follows

B(k)=A(k)exp(jkπh ₄)

For the special case where the modulation index is h₄=¼, the signal B(k)at the output of 1228 is known in the literature as n/4-DQPSK and may begenerated in many different ways. For this special case, even symbolsB(2k) take on the following values {±1, ±j}, whereas odd symbols B(2k+1)take on the following values {exp(±jπ/4)}, exp(±j 3π/4)}. Therefore inconclusion, blocks 1114, 1124, 1132, and 1136 provide an exampleimplementation of πh₄-DPQPSK modulation and in the special case wherethe modulation index is h₄=¼, this reduces to the known π/4-DQPSKmodulation.

According to one aspect of the invention, a generalized πh₄-DPQPSK,labeled here πh₄-GDPQPSK may be used to represent 4-CPM. An exampleillustration of the embodiment for generation of πh₄-GDPQPSK is shown inblocks 1232, 1236 and 1240. The input bit streams bit d(2k) and d(2k+1)in 1216 and 1218 are input to block 1232 which generates a correctionterm 1234 according to the following formula

${C(k)} = {\alpha \begin{Bmatrix}{{\exp \left\lbrack {j\; \pi \; {{h_{4}\left\lbrack {1 - {2{d\left( {2k} \right)}}} \right\rbrack}\left\lbrack {1 - {2{d\left( {{2k} + 1} \right)}}} \right\rbrack}} \right\rbrack} +} \\{\exp \left\lbrack {{- j}\; 2\pi \; {h_{4}\left\lbrack {1 - {2{d\left( {{2k} + 1} \right)}}} \right\rbrack}} \right\rbrack}\end{Bmatrix}}$

where α is a constant that depends on the modulation index h₄. As anexample, for a modulation index h₄=¼, the constant α is in the order of0.47 and for a modulation index h₄=⅙, the constant α is in the order of0.42.

The correction term 1234, i.e. C(k), is multiplied by πh₄-DPQPSK signal1230, i.e. signal B(k), to generate signal 1238 referred to here as amodified πh₄-DPQPSK signal and labeled πh₄-MDPQPSK. The πh₄-MDPQPSKsignal is denoted as D(k), and is computed as follows

D(k)=C(k)B(k), for k=0,1,2, . . .

The πh₄-DPQPSK signal 1138, i.e. B(k), and the πh₄-MDPQPSK signal, i.e.D(k), are serialized using the P2S (Parallel To Serial) block 1144, andthe output 1146 is referred to here as the generalized πh4-DPQPSK,labeled as πh₄-GDPQPSK and denoted E(k),

E(2k−1)=D(k)

E(2k)=B(k)

The πh₄-GDPQPSK signal E(k) is complex and the samples are separated byT/2, i.e. half a symbol due to the serialization operation 1240. Thecomplex signal E(k) is input to I&Q filters in 1246 where the Icomponent (i.e. in-phase or real part) is filtered by a first filter andthe Q component (i.e. the quadrature or imaginary part) is filtered by asecond filter that is preferably identical to the first filter, and thecomplex output 1248 is referred to as filtered πh₄-GDPQPSK and labeledas x(t) which reduces to πh₄-GDQPSK in the important special case whereh4=¼. The output signal 1248 is a quasi-constant envelope signal and maybe expressed as

${x(t)} = {\sum\limits_{k}{{E(k)}{g\left( {t - {{kT}/2}} \right)}}}$

where g(t) is a real filter identical to the in-phase and quadraturefilters. The filter g(t) may be implemented in digital or analog. As anexample, a Bessel filter, a Butterworth filter, a Chebyshev filter, oran elliptic filter may be used. In a preferred embodiment of theinvention, the filters are designed in such a way that the complexsignal x(t) has a quasi-constant envelope. The filter g(t) is preferablychosen to produce a quasi-constant envelope signal.

According to another aspect of the disclosure, a CPM signal (including2-CPM and 4-CPM) signal may be generated using filtered differentiallyencoded πh-continuously rotated Pseudo-PSK (Phase Shift Keying)modulation, wherein the differentially encoded πh₄-continuously rotatedPseudo-PSK is πh₄-DPBPSK for a 2-CPM signal and wherein thedifferentially encoded continuously rotated πh-Pseudo-PSK is πh₄-GDPQPSKfor a 4-CPM signal. Therefore, a CPM signal may be generated usingfiltered differentially encoded πh-Pseudo-PSK according to one aspect ofthe invention.

When the multipath channel is much smaller than the chip duration, a4-CPM signal may be detected non-coherently but at a reduced performanceas compared to a coherent detection receiver. On the other hand, whenthe multipath channel is significant, coherent or non-coherent detectionof 4-CPM becomes extremely difficult due to the non-linear nature of4-CPM. Therefore, there is a need in the art for a practical coherentdetection method and a practical non-coherent detection method in amultipath environment. Even when the multipath channel is notsignificant, there is a need in the art for a practical coherentdetection method.

According to one aspect of the disclosure, the 4-CPM signal at theoutput of 328′ in FIG. 3. after traveling through the multipath channel334 and down-converted to baseband but before digitization may bemodeled as follows

${r(t)} = {{\left\lbrack {\sum\limits_{k}{{E(k)}{p\left( {t - {{kT}/2}} \right)}}} \right\rbrack ^{{j2\pi}\; f\; t}} + {D\; C} + {w(t)}}$

where p(t) is the channel as seen by the receiver and comprises thecascade of the transmit filtering, multipath channel, and receivefiltering, {E(k)} are the transmit πh₄-GDPQPSK data chips, f is thefrequency offset between the transmitter and receiver due to ppm drifton both sides and Doppler shift, DC is constant offset which may bepresent in direct conversion receivers, and w(t) is the additive whiteGaussian noise plus interference. Not shown in the above equation is thetime drift which may be modeled as a slowly time varying channel.

The received signal may be sampled at one sample per chip or multiplesamples per chip. As an example, for a two samples per chip system, thereceived signal at time t=nT−T/2, labeled here as r⁽⁰⁾(n), and thereceived signal at time t=nT, labeled here as r⁽¹⁾(n), may be expressedas (after DC removal, frequency correction, and πh₄ continuousde-rotation)

${r^{(0)}(n)} = {{^{{- j}\; \pi \; h_{4}}{\sum\limits_{k = 0}^{L}{{h^{(1)}(k)}{A\left( {n - k - 1} \right)}}}} + {\sum\limits_{k = 0}^{L}{{h^{(0)}(k)}{F\left( {n - k} \right)}}} + {w^{(0)}(n)}}$${r^{(1)}(n)} = {{\sum\limits_{k = 0}^{L}{{h^{(0)}(k)}{A\left( {n - k} \right)}}} + {\sum\limits_{k = 0}^{L}{{h^{(1)}(k)}{F\left( {n - k} \right)}}} + {w^{(1)}(n)}}$

Where {A(n)} is the set of DPQSK chips shown above, {F(n)} is the set ofMDPQSK chips related to {A(n)} via the correction terms as follows

F(n)=A(n)C(n) for n=0,1,2, . . .

and where

h ⁽⁰⁾(k)=p(kT)e ^(−jkπh) ⁴ , and h ⁽¹⁾(k)=p(kT+T/2)e ^(−jkπh) ⁴

The transmit data stream may be estimated from r⁽⁰⁾(n) alone; r⁽¹⁾(n)alone or by using jointly) r⁽⁰⁾(n) and r⁽¹⁾(n). The above equations aresimilar to any linear oversampled system such as π/4-DQPSK with theexception that the data symbols are drawn from a differentconstellation, i.e. πh₄-GDQPSK constellation. Therefore, any datadetection method may be used to recover the transmit data stream {I(n)}.As an example, MLSE (Maximum Likelihood Sequence Estimation) receiver,DFE (Decision feedback Equalizer), MMSE (Minimum Mean Square Equalizer),differential detection, may be used to recover the transmit data stream.

In order to estimate the multipath channel at the receiver a trainingsequence is typically used that is known at both sides, i.e. at thetransmitter and receiver. Training 4-CPM in a multipath environment isextremely challenging due to the fact that 4-CPM is a non-linearmodulation. Therefore, there is a need in the art for a practicaltraining method that allows easy channel estimation.

According to one aspect of the disclosure, the 4-CPM received signalafter being digitized is modeled as a πh₄-GDQPSK linearly modulatedsignal and therefore a πh₄-GDQPSK training sequence may be used at thetransmitter side to train the receiver and permits multipath channelestimation using known correlation methods. As an illustration example,for a 4-CPM system with a modulation index of h₄=¼, the followingtraining sequence may be used

-   -   I=[−3, +3, +1, +3, −3, +3, −3, −1, −3, +3]        which corresponds to the binary sequence    -   d=[1,1,0,0,1,0,0,0,1,1,0,0,1,1,0,1,1,1,0,0]

According to one aspect of the disclosure, the channel may be estimatedas shown in FIG. 13A. The received training sequence 1302 is firstcontinuously de-rotated by πh₄ in de-rotator 1304, and the de-rotatedoutput 1306 is input to correlator 1308. The correlator may beimplemented as a matched filter to the entire training sequence or to apart of the training sequence, i.e. matched filter to A(i: 11−i) wherei≧1. Matched filter operation implements a convolution between input1306 and A*(11−n) where A*(11−n) the reverse and conjugate of sequenceis A(n). The sequence A(n) is computed as explained above and repeatedbelow

A(k)=A(k−1)J(k), with A(−1)=1 and k=0,1,2, . . .

J(k)=exp{jπh ₄ [I(k)−1]}

For an oversampled received signal as explained above, the matchedfilter is a filter matched to the sequence {A(i),F(i), A(i+1), F(i+1), .. . , A(M−i), F(M−i)} where M=11 in the above example.

According to another aspect of the disclosure, the correlation may beimplemented as shown in FIG. The shift register 1354-1 to 1354-M isloaded with the part or entire sequence {A*(n)}. As an example, memorycomponent 1354-1 is loaded with A*(2), and memory component 1354-2 isloaded with A*(3) and so on. The shift register is a cyclic shiftregister, i.e. at each clock cycle, the content shifts one position tothe right and the output of 1354-1 is fed back to 1354-M. The receivedsignal corresponding to the training sequence 1352 is input tomultipliers 1356-1 to 1356-L along with the outputs of memory components1354-1 to 1354-L respectively. The multipliers outputs 1358-1 to 1358-Lare input to accumulators 1360-1 to 1360-L. Each accumulator accumulatesits output over M clock cycles where M is the total or partial length ofsequence {A*(n)}. The outputs 1362-1 to 1362-L may be serialized toprovide a coarse estimate of the CIR (Channel Impulse Response).

The channel impulse response 1310 may not be perfect due to the factthat there are no training sequences that provide zero correlation zone(i.e. zero sidelobes) around the peak. Therefore, according to oneaspect of the disclosure, the coarse CIR 1310 is input to a CIRcorrection unit 1312 that provides an improved CIR estimate. The CIRcorrection unit may be implemented using know sidelobe suppressionmethods such as matrix inversion.

As an example, consider the estimation of a CIR of 3 taps. For thetraining sequence provided above, if the system is oversampled by afactor of two and a matched filter to the sequence {A(2), F(2), A(3),F(3), . . . , A(10), F(10)} is used than the coarse CIR estimatex=[x(0), x(1), x(2)] at the output of 1308 in FIG. 13A is given by

x(0)=h(0)+0.42×h(1)

x(1)=0.42×h(0)+h(1)+0.42×h(2)

x(2)=0.42×h(1)+h(2)

where h=[h(0), h(1), h(2)] is the desired clean CIR, and where the 0.42value correspond to the first sidelobe level of the autocorrelationfunction at the output of the matched filter. The coarse CIR x may becorrected in 1312 using matrix inversion as follow

$\begin{bmatrix}{h(0)} \\{h(1)} \\{h(2)}\end{bmatrix} = {\begin{bmatrix}1 & 0.42 & 0 \\0.42 & 1 & 0 \\0 & 0.42 & 1\end{bmatrix}^{- 1} \times \begin{bmatrix}{x(0)} \\{x(1)} \\{x(2)}\end{bmatrix}}$

which provides a cleaner estimate 1314 of the CIR.

Constant Envelope Preambles

As mentioned above, single carrier WBAN systems are envisioned to uselow cost crystals with high ppm (parts per million) and may even becrystal-less with even higher ppm. In order to detect the presence ofthe signal, a preamble (i.e. a known signature) is typically sent by atransmitter device as part of each packet. Coherent detection of thepreamble may become problematic in the presence of large frequencyoffsets due to the high ppm on each side of a link and therefore, thereis a need in the art for a robust preamble design and detection methodwhile still maintains a constant envelope.

In accordance to another aspect of the disclosure, at least one of aGolay spreading sequence and a generalized-Golay spreading sequence withzero DC level after differential encoding and continuous chip-levelπh₂-rotation is 2-CPM (Continuous Phase Frequency Shift Keying)modulated and used to spread at least a portion of a data stream. Thisis illustrated in FIGS. 14A and 14B and detailed below for the exemplarycase of 2-CPM with h₂=½.

According to one aspect of the disclosure, as illustrated in FIG. 14A, apreamble sequence 1406 such as sequence [0, 0, . . . , 0, 1] isgenerated in 1404 and is spread in 1408 using a XOR gate with aspreading sequence generated using an efficient Golay/Generalized-Golaygenerator 1414 which may be implemented as shown in FIGS. 4A, 4B, 5A,and 6B. As an example, for a Golay sequence of length 16, a₁₆, withelements from the alphabet {0,1}, the spread preamble 140 would be [a₁₆,a₁₆, . . . , ā₁₆] where ā₁₆=1−a₁₆, i.e. a logic “0” becomes “1” andlogic “1” becomes “0”. The spread preamble 1410 is 2-CPM modulated in1416 and transmitted as part of a packet.

According to another aspect of the disclosure, the 2-CPM modulatedpreamble with modulation index of h₂=½ may be generated as shown in FIG.14B. A Golay/Generalized-Golay sequence is generated using the efficientgenerator 1422 which is differentially encoded in 1426 and the output1428 is a differential Golay sequence or a differentialgeneralized-Golay sequence. The differential sequence 1428 is used tospread a preamble sequence 1433 generated in 1434 and the spreadpreamble 1436 is mapped to a BPSK constellation, i.e. logic level “0” ismapped to +1 and logic level “1” is mapped to −1. The BPSK preamble iscontinuously rotated by π/2 in rotator 1442. The preamble and theremainder of the packet (not shown in FIG. 14B) is filtered conditioned,up-converted to the appropriate RF frequency, amplified and transmitted.

In the following, a differential Golay sequence is defined as adifferentially encoded Golay sequence, and a differentialgeneralized-Golay sequence is defined as a differentially encodedgeneralized Golay sequence.

In the following, an example of a differential Golay code (or sequence)at the output of 1426 in according to one aspect of the disclosure isprovided. First, a Golay code a of length N=16 can be generated usingdelay vector D=[4, 8, 1, 2] and seed vector W=[+1, −1, −1, +1]:

-   -   a=[−1, −1, −1, −1, −1, +1, −1, +1, +1, +1, −1, −1, −1, −1, +1,        +1]        Or using logic levels “0” and “1”    -   a=[1,1,1,1,1,0,1,0,0,0,1,1,1, 1, 0, 0]        The differential Golay code used as a spreading sequence,        denoted here c, is generated using the following formula (block        1426 in FIG. 14B)

c(0)=a(0)

c(n)=c(n−1)

α(n) for n=1, . . . ,N−1

where “mod” stands for modulo operation, i.e. −1 mod N=N−1, and

stands for XOR operation. This yield

-   -   c=[1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0]        The spreading sequence c is not a Golay sequence, but rather,        its differential a is a Golay sequence. The Golay sequence a can        be computed from sequence c using chip differential operation as        follows

α(n)=c(n)

c((n−1)mod N) for n=0,1, . . . ,N−1

where “mod” stands for modulo operation, i.e. −1 mod N=N−1. It should benoted that when BPSK levels +1 and −1 are used instead of logic levels“0” and “1” in sequences a and c, the differential encoding becomes

c(0) = a(0)${{c(n)} = {{{c\left( {n - 1} \right)} \times {a(n)}} = {{\prod\limits_{k = 0}^{n}{{a(k)}\mspace{14mu} {for}\mspace{14mu} n}} = 1}}},\ldots \mspace{14mu},{N - 1}$

And the differential decoding becomes

α(n)=c(n)×c((n−1)mod N) for n=0,1, . . . ,N−1

According to one aspect of the disclosure, the Golay orgeneralized-Golay sequence used to spread the preamble has a zero DClevel after differential encoding and π/2 rotation. The DC level of thedifferential Golay sequence after π/2-rotation is

DC=Σ_(n=0) ^(N−1) e ^(jnπh) ² [1−2c(n)]=0

where j is the complex number defined by j=√{square root over (−1)} andthe elements of the sequence {c(n)} are from the alphabet {0,1}.Therefore, the πh₂-rotated differential Golay sequence is DC free. A DCfree sequence is advantageous since it enables DC offset removal at thereceiver before and/or after detection and enables multiple RF radioimplementations such as direct conversion receiver.

The DC offset may be calculated from the equivalent signed sequence{c(n)}, i.e. when the elements are taken from the alphabet {±1} asfollows

DC=Σ_(n=0) ^(N−1) e ^(jnπ/2) c(n)=Σ_(n=0) ^(N−1) e ^(jnπ/2)Π_(k=0)^(n)α(k)=0

According to one aspect of the disclosure, the Golay orgeneralized-Golay sequence used to spread the preamble has a zero DClevel after DPBPSK (Differential Pseudo BPSK) encoding and πh₂ rotation.The DC level of the DPBPSK Golay sequence {c(n)} after πh₂ rotation is

DC=Σ_(n=0) ^(N−1) e ^(jnπh) ² c(n)=Σ_(n=0) ^(N−1) e ^(jnπh) ² Π_(k=0)^(n) e ^(jπh) ² ^([α(k)−1)]=0

In accordance to another aspect of the disclosure, an m-sequence (i.e.maximal-length sequence) may be used to spread at least a portion of adata stream.

A maximal-length sequence or m-sequence is a sequence that can begenerated using a linear feedback shift register (LFSR) and have themaximum possible period for an r-stage shift register. As an example,FIG. 15A illustrates an r-stage LFSR (Linear Feedback Shift Register)that may be used to generate an m-sequence of length N=2^(r)−1.

In reference to FIG. 15A, memory elements 1506-1 to 1506-r areinitialized to an initial state that is different than all zeros. Eachmemory element may be implemented as a flip-flop and may hold one bit inmemory. The outputs of the memory elements 1506-1 to 1506-r are weighedby the generator polynomial elements 1504-1 to 1504-r. A generatorpolynomial element of 0 means that there is no connection and 1 meansthat there is connection. The outputs of the generator elements 1504-1to 1504-r polynomial elements are fed to XOR gates 1502-1 to 1502-r andthe signal 1508 is the feedback signal to feeds back the r^(th) memoryelement 1506-r. The output 1510 of the LFSR is taken from the firstmemory element 1506-1.

In the following, an example of an m-sequence according to one aspect ofthe disclosure is provided. First an m-sequence, denoted here d, oflength N=31 is generated using a 5-stage LFSR with generator polynomialg=[1, 1, 1, 0, 1] and initial state s=[0, 0, 0, 1, 1] as shown in FIG.15B,

$d = \begin{bmatrix}{0,0,0,1,1,1,0,0,1,1,0,1,1,1,1,1} \\{0,1,0,0,0,1,0,0,1,0,1,0,1,1,0}\end{bmatrix}$

By differentially encoding the m-sequence, d, a differentially encodedm-sequence c, which itself is an m-sequence, may be generated

$c = \begin{bmatrix}{1,1,1,0,1,0,0,0,1,0,0,1,0,1,0,1} \\{1,0,0,0,0,1,1,1,0,0,1,1,0,1,1}\end{bmatrix}$

In accordance to one aspect of the present invention, thedifferentially-encoded m-sequence, c, may be generated directly usingthe efficient m-sequence generator of FIG. 15C comprising 5-stage LFSRwith generator polynomial g=[1, 1, 1, 0, 1] and initial state s=[1, 1,1, 0, 1].

Exemplary Wireless Body Area Network Transmission

FIG. 7 illustrates a WBAN frame structure according to one aspect of theinvention. The frame structure may be used in wireless communicationsystem 100 in FIG. 1 for beaconing and data transmission from a serviceaccess point 104, association and data transmission between a station106 and the service access point 104, medium access layer (MAC) commandframes and responses between station 106 and the service access point104, and peer to peer control and data frames between two stations, etc.

According to one aspect of the disclosure, a frame (or packet) comprisesa preamble 702, header 704, an optional guard interval 706, an optionaltraining sequence 708, and packet payload 710. The preamble may comprisea packet sync sequence field 712, and a start-frame delimiter field 714.

According to one aspect of the disclosure, the preamble and the headerare 2-CPM modulated. Equivalently, according to another aspect of thedisclosure, the preamble and the header are modulated using filteredπh₂-DPBPSK, i.e. differential pseudo BPSK modulation followed bycontinuous chip-level πh₂-rotation followed by appropriate filtering,such as Bessel filtering or Butterworth filtering, to provide aquasi-constant envelope signal. For the important special case where themodulation index is h₂=½, this modulation becomes filtered π/2-DBPSK.

According to another aspect of the invention, the payload may bemodulated using either 2-CPM with a preferably modulation index of h=½,(or equivalently filtered π/2-DBPSK) and 4-CPM with modulation indexpreferably chosen from h₄=¼ or h₄=⅙.

The guard interval 706 is absent when the payload is 2-CPM modulated andmay be present when the payload is 4-CPM modulated. The guard intervalmay be used to for example to ensure phase continuity between the headerand payload when the modulation is switched between 2-CPM to 4-CPM or toallow the multipath to decay before switching from 2-CPM to 4-CPM.

According to one aspect of the disclosure, the guard interval is absentwhen the modulation index for 2-CPM, is three times the modulation indexfor 4-CPM, i.e.

h ₂=3h ₄

According to one aspect of the disclosure, a 2-CPM signal satisfying theabove constraint may be modulated as a 4-CPM signal with I_(k)ε{±3}.

According to one aspect of the invention, a 2-CPM signal satisfying theconstraint h₂=3h₄, may be modulated and demodulated as a 4-CPM signalwith d(2k)=d(2k+1).

According to another aspect of the disclosure, the header and payloadare spread using one of a Barker sequence of length 3, a Barker sequenceof length 5, a Barker sequence of length 7, a Barker sequence of length11, and a Barker sequence of length 13, prior to CPM modulation.

According to one aspect of the disclosure, the sync filed 710 before2-CPM modulation is a repetition of zeros spread (XORed) by a Golaycodes a₁₆ with zero DC level after differential encoding andπ/2-rotation such as the code provided above. This is furtherillustrated in blocks 716-1, 716-2 to 716-Q. The SYNC filed may bedetected coherently or differentially.

According to another aspect of the disclosure, the start-frame delimiter(SFD) field 212 comprises a sequence such as the sequence [1] or [1, 1,0, 1] spread by a₁₆ to indicate the end of the sync field. This isfurther illustrated in block 718. The SFD may be detected coherently ordifferentially.

The header 704 may be modulated using 2-CPM or filtered πh₂-DPBPSK. Theheader 704 comprises a length field 720 and an MCS field 722. The lengthfield indicates the length of the payload in octets and the MCS(Modulation and Coding Scheme) indicates the modulation and codingscheme used for the payload.

The guard interval 706 may be present when the payload is 4-CPMmodulated. It may be used to ramp down after the header and to ramp-upbefore the payload. It may be used also to guarantee a smooth phasetransition between 2-CPM and 4-CPM or to allow the 2-CPM multipath todecay.

According to one aspect of the disclosure, a training sequence 708 suchas the sequence provided above is used to allow multipath detectionusing the circuit shown in FIG. 13A and may be used to re-synchronizethe receiver in timing and frequency.

The payload 710 comprises a MAC header 724, a data portion 726, and aCRC (cyclic redundancy check) field 728. The data may be modulated usingeither 2-CPM or 4-CPM according to one aspect of the disclosure.

In accordance to one aspect of the disclosure, at least one of a Golaysequence, and a generalized-Golay code, with a DC level of magnitudezero after differential encoding and chip-level π/2-rotation is used asa spreading sequence for the preamble portion 702 of the packet. Thecircuits in FIGS. 14A and 14B may be used to generate the preamble asdetailed above.

Exemplary Wireless Body Area Network Reception

At the receiver, multiple tasks are typically performed before detectingthe SYNC field of the preamble. Automatic Gain Control (AGC) may beperformed first to fit the received signal within the dynamic range ofthe ADC. For a single bit ADC, an AGC is not required. After AGC,antenna selection is performed and DC offset may be removed. The abovetasks may be implemented in different order. After the above tasks areaccomplished, packet detection is performed.

According to one aspect of the disclosure, an acquisition circuitperforming joint packet detection, time and frequency estimation isshown in FIG. 16A. First the baseband complex received signal 1602 isinput to a DC offset removal block 1604.

DC offsets at the receiver may have many origins such as self-mixing dueto LO (Local Oscillator) leakage. For the case where the preamble isspread using a 2-CPM (or filtered πh₂-DPBPSK) Golay/generalized-Golaysequence of length N, a DC can be measured by computing the sum or meanover any interval of duration equivalent to K.N chips where K is aninteger ≧1 since the receiver sees the 2-CPM as a differentialGolay/generalized-Golay sequence continuously rotated by πh₂ in a linearmultipath channel (as shown above) and has a zero DC over any K.N chipsand therefore, at the receiver an accurate DC offset estimation may beobtained.

For the case where the preamble is spread using a 2-CPM (or filteredπh₂-DPBPSK) m-sequence of length N, a DC may be measured accurately bycomputing the sum or mean over a duration equivalent to K.4.N chipswhere K is an integer ≧1. This is where a Golay or Generalized Golay hasa huge advantage over m-sequence since the DC is zero over a muchshorter length.

The output 1606 of the DC offset removal block 1604 is input to aπh₂-derotator block 1008. The de-rotator cancels out the πh₂-rotationapplied at the transmitter. It may be implemented as follows

y(n)=e ^(−jnπh) ² x(n)

where x(n) is the chip level input 1606 and y(n) is the de-rotatedoutput 1610.

The output 1610 of the de-rotator 1608 is input to a chip differentialdetector 1612. According to one aspect of the invention, the chipdifferential detector may be implemented as shown in FIG. 16B. The inputsignal 1642 is delayed by one chip in memory element 1644 and is acomplex conjugate is taken in 1648 and the delayed and conjugated output1650 is multiplied in 1652 with the input signal 1642. The output signal1654 is the differentially detected signal and corresponds to signal1614 in FIG. 16A.

The differentially detected signal 1614 is input to an efficientcorrelator 1616. The efficient correlator may be implemented as a Golayefficient correlator as shown in FIGS. 4A, and 4B, an efficientgeneralized Golay correlator as shown in FIG. 5A, or as an efficientm-sequence correlator as shown in FIG. 15D.

FIG. 15D illustrates an efficient m-sequence correlator according to oneaspect of the disclosure. The input signal 1562 at chip level is firstpermuted in block 1564. As an example, for the above example ofdifferential m-sequence d, the permuter takes a vector of 31 chips,denoted here y, prepend it with a zero, and outputs a block of 32permuted chips, denoted here z, according to the following equation

$z = {y\begin{bmatrix}{1,32,20,2,21,24,8,3,18,22,25,27,29,9,4,12,} \\{31,19,23,7,17,26,28,11,30,6,16,10,5,15,14,13}\end{bmatrix}}$i.e., z(1) = z(2) = y(32), z(3) = y(20), and  so  on.

The permuted vector z corresponds to signal 1566 and is input to a fastWalsh processor which applies a fast Walsh transform and produces outputvector Z corresponding to signal 1570. The signal vector is input to asecond permuter 1572 which permutes according to the following equation

$q = {Z\begin{bmatrix}{1,17,9,5,3,2,30,20,21,11,6,32,19,10,26,18,} \\{22,24,23,12,25,13,7,4,29,15,8,31,16,27,14,28}\end{bmatrix}}$

and discards the first chip to obtain back a 31 bits vector.

The output 1618 of the efficient correlator 1616 in FIG. 16A is input toaccumulator 1620. The accumulator accumulates the outputs of theefficient correlator in a memory component comprising M complex memorycells. In a preferred aspect of the present disclosure, the number M ischosen to correspond exactly to the sequence length used in the SYNCfield, i.e. for a sampling frequency equals to the chip rate, N=16 inreference to the SYNC filed in FIG. 7 for example. For the examplepacket structure in FIG. 7, and for a sampling rate equals to the chiprate, the preferred value would be N=16.

According to one aspect of the present disclosure, the accumulator maybe implemented using a complex first order IIR (Infinite ImpulseResponse) filter such as the one shown in FIG. 16 C. The complex input1662 is first scaled by a factor α in 1666 using multiplier 1664. Theoutput 1668 is added in 1670 to a delayed version 1682 of the scaledoutput. The signal 1684 is the output of the IIR filter, and is fed backto memory component 1674 that stores M samples; the output 1676 of thememory component 1674 is scaled by a factor β in 1680 using multiplier1678. The multiplier output 1682 is the feedback signal. The magnitudeof the accumulator shift register is an approximation to the multipathpower profile over M samples.

The output 1622 of the accumulator 1620 in FIG. 10A is fed to ahypothesis testing device 1624 which compares the magnitude of its inputto a given threshold. The magnitude may be computed in different wayssuch as the sum of the absolute value of the real and the absolute valueof the imaginary, or the square root of the of the sum of the square ofthe real and the square of the imaginary, and so on.

If the magnitude in 1624 is tested above a given threshold, the locationof the magnitude that was above the threshold or the location of themaximum magnitude of the accumulator shift register may be used as acoarse timing estimate referred to herein as peak location. The angle ofthe complex value in the accumulator shift register at the peak locationmay be used to estimate the frequency error.

According to one aspect of the disclosure, the hypothesis testing in thehypothesis testing device 1624 in FIG. 16B may be performed as follows.First the received signal magnitude, denoted here R_(n) at time samplen, is computed from the received samples 1622. As an example, anaccumulator such as a first order IIR filter may be used for thatpurpose

R _(n) =μR _(n−1)+(1−μ)X _(n)

where X_(n), is the received signal magnitude and may computed asdiscussed above, and μ is a forgetting factor of the IIR chosen in sucha way 0<<μ<1. The received signal magnitude, R_(n), may be decomposedinto two components

R _(n) =S _(n) +I _(n)

where R_(n), is the ideal received signal power and I_(n), is the noiseplus interference power. The magnitude of the peak in the accumulatorshift register 1674 may be approximated as follows

A _(n) =ηS _(n) +I _(n) /L

where η is the portion of the signal captured in the peak and may beunknown, and L is the equivalent integration length which may becomputed form L and the parameters of the IIR filter in FIG. 16C. Forlarge values of L, the following approximation holds A_(n)=nS_(n) and anoise plus interference estimate I_(n) may be obtained by computing

Ĩ _(n) =R _(n) −ρA _(n)

and the hypothesis testing device performs the following test

A _(n)

T·Ĩ_(n)

where T is a threshold computed to achieve a given probability ofdetection and false alarm, and a signal is judged to be present if A_(n)

T·Ĩ^(n).

After acquisition, the frequency may be corrected and tracked using theremainder of the preamble, residual DC offset may be removed, multipathchannel may be estimated and SFD may be detected.

After SFD detection, the header 704 and payload 708 in FIG. 7 may bedemodulated and an estimate of the original data is obtained.

FIG. 17 illustrates an example coherent receiver according to one aspectof the disclosure that may be used to detect the header and payload. Thereceived signal 1702 is first cleaned from any DC in 1704, and thecoarse time and frequency estimates from the preamble are used initiallyin 1708 to correct the frequency and possibly to adjust timing via knowninterpolation methods. The output signal in 1710 is continuouslyde-rotated by πh where h=h₂ during the header and h=h₂ or h₄ or h₂h₄during the payload. The channel estimate is initialized to the CIRestimate from the preamble in 1722 and is fed to 1718 to help equalizingsignal 1716. The output of equalizer 1718 may be either soft or harddecisions in 1726 and are input to the FEC decoder 1730. The decoderoutputs may be used along with the received signal to adjust time andfrequency in 1724 and track the CIR in 1722.

FIG. 18A illustrates example operations 1800 that summarize the preambleencoding applied at a transmission side of the wireless communicationsystem. At 1802, an original transmission data stream comprising apreamble, a header and a payload may be obtained. At 1804 a Golay codeor a generalized-code with zero DC (where the DC is computed afterdifferential encoding and πh₂-rotation) is generated using an efficientGolay or generalized-Golay generator. At 1806, the preamble binarysequence is spread using the generated code. At 1808, the generatedpreamble is pre-pended to the data stream. At 1810, the preamble and theheader are modulated either a 2-CPM modulation or filtered πh₂-DPBPSK.At 1812, a training sequence is inserted before the payload if thepayload is to be 4-CPM modulated. At 1814, the payload or trainingsequence and payload are modulated using the appropriate modulationscheme, i.e. 2-CPM modulation (or filtered πh₂-DPBPSK) or 4-CPM (orfiltered πh₄-GDPQPSK). At 1816, the modulated data stream may betransmitted.

FIG. 19A illustrates example operations 1400 that may be performed toprocess received spread signals. The receiving method provides forprocessing signals transmitted by a transmit-side signal processor (suchas the receiver 304 in FIG. 3) after the signals have propagated througha multipath channel. Receiver front-end processing provides fordown-converting and digitizing received signals in order to producedigital baseband signals.

At 1904, the baseband spread data stream comprising a spread preamble isinput to a joint detection and synchronization block comprising aπh₂-derotator, followed by a chip differential detector, followed by acorrelator and followed by an accumulator. The synchronizationparameters are used in the receiver to aid in decoding the remainder ofthe packet in 1906 and an estimate of the original data at 1908.

FIG. 20A illustrates example operations 1400 that may be performed toprocess received spread signals. At 2004, the baseband data stream isπh₂-derotated after possible DC removal, frequency and timingcorrection. At 2006, the header and payload are decoded by modeling thereceived signal as a DPBPSK (Differential Pseudo BPSK) chips through alinear multipath channel and an estimate of the original data isobtained at 2008.

FIG. 20C illustrates example operations 1400 that may be performed toprocess received spread signals that are 4-CPM modulated. At 2042, thebaseband data stream is πh₂-derotated after possible DC removal,frequency and timing correction. At 2046, the CIR (Channel ImpulseResponse) is estimated using a two steps approach, i.e. correlation withpart of the training sequence to obtain a coarse CIR estimate andcleaning the CIR estimate in a second step. At 2048, the payload isdecoded by modeling the received signal as a GDPQPSK (GeneralizedDifferential Pseudo QPSK) chips through a linear multipath channel andan estimate of the original data is obtained at 2056.

The various operations of methods described above may be performed byany suitable means capable of performing the corresponding functions.The means may include various hardware and/or software component(s)and/or module(s), including, but not limited to a circuit, anapplication specific integrated circuit (ASIC), or processor. Generally,where there are operations illustrated in Figures, those operations mayhave corresponding counterpart means-plus-function components withsimilar numbering. For example, blocks 1802-1816, 1902-1908, 2002-2008,and 2042-2050, illustrated in FIGS. 18A, 19A, 20A and 20C correspond tocircuit blocks 1852-1866, 1952-1958, 2022-2028, and 2082-2090illustrated in FIGS. 18B, 19B, 20B and 20D.

Aspects of the disclosure may be configurable for generating code sets,updating code sets, and/or reassigning user codes in response to demandfor network resources, changes in the number of users accessing thenetwork, individual user-access requirements, changes insignal-propagation characteristics (e.g., multipath, Doppler, path loss,etc.), and/or interference (e.g., inter-symbol interference,multiple-access interference, jamming, etc.). Aspects of the disclosuremay provide for flexible code lengths, support multiple levels ofQuality of Service (QoS), and/or allow for system overloading. Aspectsof the disclosure may be optimized for minimum processing complexity,such as to enable suitability for real-time applications, rapid updates,low power consumption, and/or low cost processing components. Particularaspects of the disclosure may be configured to provide for thepreviously recited features and advantages and/or alternative featuresand advantages.

As used herein, the term “determining” encompasses a wide variety ofactions. For example, “determining” may include calculating, computing,processing, deriving, investigating, looking up (e.g., looking up in atable, a database or another data structure), ascertaining and the like.Also, “determining” may include receiving (e.g., receiving information),accessing (e.g., accessing data in a memory) and the like. Also,“determining” may include resolving, selecting, choosing, establishingand the like.

The various operations of methods described above may be performed byany suitable means capable of performing the operations, such as varioushardware and/or software component(s), circuits, and/or module(s).Generally, any operations illustrated in the Figures may be performed bycorresponding functional means capable of performing the operations.

The various illustrative logical blocks, modules and circuits describedin connection with the present disclosure may be implemented orperformed with a general purpose processor, a digital signal processor(DSP), an application specific integrated circuit (ASIC), a fieldprogrammable gate array signal (FPGA) or other programmable logic device(PLD), discrete gate or transistor logic, discrete hardware componentsor any combination thereof designed to perform the functions describedherein. A general purpose processor may be a microprocessor, but in thealternative, the processor may be any commercially available processor,controller, microcontroller or state machine. A processor may also beimplemented as a combination of computing devices, e.g., a combinationof a DSP and a microprocessor, a plurality of microprocessors, one ormore microprocessors in conjunction with a DSP core, or any other suchconfiguration.

The steps of a method or algorithm described in connection with thepresent disclosure may be embodied directly in hardware, in a softwaremodule executed by a processor, or in a combination of the two. Asoftware module may reside in any form of storage medium that is knownin the art. Some examples of storage media that may be used includerandom access memory (RAM), read only memory (ROM), flash memory, EPROMmemory, EEPROM memory, registers, a hard disk, a removable disk, aCD-ROM and so forth. A software module may comprise a singleinstruction, or many instructions, and may be distributed over severaldifferent code segments, among different programs, and across multiplestorage media. A storage medium may be coupled to a processor such thatthe processor can read information from, and write information to, thestorage medium. In the alternative, the storage medium may be integralto the processor.

The methods disclosed herein comprise one or more steps or actions forachieving the described method. The method steps and/or actions may beinterchanged with one another without departing from the scope of theclaims. In other words, unless a specific order of steps or actions isspecified, the order and/or use of specific steps and/or actions may bemodified without departing from the scope of the claims.

The functions described may be implemented in hardware, software,firmware or any combination thereof. If implemented in software, thefunctions may be stored as one or more instructions on acomputer-readable medium. A storage media may be any available mediathat can be accessed by a computer. By way of example, and notlimitation, such computer-readable media can comprise RAM, ROM, EEPROM,CD-ROM or other optical disk storage, magnetic disk storage or othermagnetic storage devices, or any other medium that can be used to carryor store desired program code in the form of instructions or datastructures and that can be accessed by a computer. Disk and disc, asused herein, include compact disc (CD), laser disc, optical disc,digital versatile disc (DVD), floppy disk, and Blu-ray® disc where disksusually reproduce data magnetically, while discs reproduce dataoptically with lasers.

Thus, certain aspects may comprise a computer program product forperforming the operations presented herein. For example, such a computerprogram product may comprise a computer readable medium havinginstructions stored (and/or encoded) thereon, the instructions beingexecutable by one or more processors to perform the operations describedherein. For certain aspects, the computer program product may includepackaging material.

Software or instructions may also be transmitted over a transmissionmedium. For example, if the software is transmitted from a website,server, or other remote source using a coaxial cable, fiber optic cable,twisted pair, digital subscriber line (DSL), or wireless technologiessuch as infrared, radio, and microwave, then the coaxial cable, fiberoptic cable, twisted pair, DSL, or wireless technologies such asinfrared, radio, and microwave are included in the definition oftransmission medium.

Further, it should be appreciated that modules and/or other appropriatemeans for performing the methods and techniques described herein can bedownloaded and/or otherwise obtained by a user terminal and/or basestation as applicable. For example, such a device can be coupled to aserver to facilitate the transfer of means for performing the methodsdescribed herein. Alternatively, various methods described herein can beprovided via storage means (e.g., RAM, ROM, a physical storage mediumsuch as a compact disc (CD) or floppy disk, etc.), such that a userterminal and/or base station can obtain the various methods uponcoupling or providing the storage means to the device. Moreover, anyother suitable technique for providing the methods and techniquesdescribed herein to a device can be utilized.

It is to be understood that the claims are not limited to the preciseconfiguration and components illustrated above. Various modifications,changes and variations may be made in the arrangement, operation anddetails of the methods and apparatus described above without departingfrom the scope of the claims.

The techniques provided herein may be utilized in a variety ofapplications. For certain aspects, the techniques presented herein maybe incorporated in a base station, a mobile handset, a personal digitalassistant (PDA) or other type of wireless device that operate in UWBpart of spectrum with processing logic and elements to perform thetechniques provided herein.

1. A method for communication, comprising: encoding a binary data streamusing one of a continuously rotated differential pseudo BPSK(πh₂-DPBPSK) encoding and a continuously rotated generalizeddifferential pseudo QPSK (πh₄-GDPQPSK) encoding; and filtering theencoded binary data stream to produce a quasi-constant envelopemodulated signal.